java虚拟机调优常识

 

jvm的调整没什么技巧,只有一些原则,要根据自己应用的特点来设定调优的目标,这里收集了一些内容,权当记录

 

Java heap (Xmx, Xms) 和java进程的heap是两回事情

java进程的heap包含:

   Java Heap

   Permanent Generation

   Thread stacks

   Native code

   Directly allocated memory

   Code generation

   Garbage collection

   TCP buffers


因此我们在设置,jvm参数的时候得小心一点,一般我们会设置java heap 和 perm gen,结合操作系统内存的大小和应用特点,选取一个合理的值。

-Xms/-Xmx
java heap并不是越大越好,对他的一般优化原则是够用的情况下,尽可能的小,因为太大的话会浪费内存,同时影响GC的效率

-XX:NewSize/-XX:NewRatio
一般设置为java heap的25%-33%,太大或者太小都会影响GC,要根据应用的特点,对象生命长短周期的比例来调整

GC相关调整的目标:
* 短生命周期的对象不要进入Old区
* 短生命周期的对象在minor GC的时候干掉
* 长生命周期的对象要放到Old区
* 长生命周期的对象可以被Full GC清理掉,但是Full GC要调整到尽量少发生

不管采用什么算法,GC总是会导致应用暂停的,这个时间长短从毫秒到秒之间不等,因此会影响应用的相应时间,多长的停顿在接受范围内取决于应用的特征,可以通过设置GC停顿的时间来调整(注意只是期望的时间,而不是绝对)
-XX:MaxGCPauseMillis -XX:MaxGCMinorPauseMillis  ,一般设置比较短的停顿时间会导致相对较频繁的GC,根据应用的情况来调整

更多的jvm参数请见: A Collection of JVM Options 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值