您的位置:首页 > 其它

JVM调优常用参数

2017-12-31 15:26 507 查看

JVM调优常用参数

内存调优

**设置heap大小

这个非常重要,通常只要这里设置够了,就不会出现溢出。

”-Xms4096m -Xmx4096m

or

”-Xms4g -Xmx4g

这两个值的大小应该一样,这样减少转换时初始化时间

64位一般可支持的最大内存是多少?如果物理内存为32G(一般为物理内存的90%,也就是27\~28G)

新生代和老年代的大小

这个参数相当于设置等值的最小、最大新生代,NewRatio这个设置新、老代比例,NewRatio=1代表,两个相等大小

”-Xmn1g

这个值如果不设的话,默认只有6M


**设置持久代大小

同理,这两个值应该是一样的(jdk7)

”-XX:PermSize=512m -XX:MaxPermSize=512m

JDK8起用这两个参数

”-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m

**设置code cache

”-XX:ReservedCodeCacheSize=1024m -XX:+UseCompressedOops

GC调优

并发GC线程设置

服务器总的线程数/jvm实例数就行了,如果一台服务器上有4个jvm。比如2颗6核超线程(超线程后1个核相当于2个线程)就是24/4=6调,置
ParallelGCThreads
时最大不要超过6就行了。

Mac笔记本4核8线程,一个jvm,ParallelGCThreads=CPU 数量/JVM 数量

”-XX:ParallelGCThreads=8

CMS基本配置

配置了cms,
-XX:+UseParNewGC
这个参数就不用设了,因为设了cms这个就自动打开了

”-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly

日志基本配置

”-Xloggc:/var/log/gc-sms.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails

例子

linkedin的一个例子如下

// JVM sizing options

”-Xms40g -Xmx40g -XX:MaxDirectMemorySize=4096m -XX:PermSize=256m -XX:MaxPermSize=256m

// Young generation options

”-XX:NewSize=6g -XX:MaxNewSize=6g -XX:+UseParNewGC -XX:MaxTenuringThreshold=2 -XX:SurvivorRatio=8 -XX:+UnlockDiagnosticVMOptions -XX:ParGCCardsPerStrideChunk=32768

// Old generation options

”-XX:+UseConcMarkSweepGC -XX:CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly

// Other options

”-XX:+AlwaysPreTouch -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:-OmitStackTraceInFastThrow

参考:[]http://www.importnew.com/11336.html]

我的常用配置

-Xms14g

-Xmx14g

-Xmn5g

-XX:MetaspaceSize=512m

-XX:MaxMetaspaceSize=512m

-XX:ReservedCodeCacheSize=1024m

-XX:+UseCompressedOops

-XX:+UseConcMarkSweepGC

-XX:ParallelGCThreads=8

-XX:CMSInitiatingOccupancyFraction=75

-XX:+UseCMSInitiatingOccupancyOnly

-Xloggc:/var/log/gc-sms.log

-XX:+PrintGCDateStamps

-XX:+PrintGCDetails
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: