JVM调优实战(二)—— jdk1.8
jdk1.8
一、统计各个区域所占大小
Jconsole监控
jstat -gcutil pid 500 20 查看各区域所占比例
二、设置堆区域大小
堆:old eden suvivor
非堆:meta 方法缓存
堆:
1、-Xmx:最大堆,系统物理内存1/4,-Xms大小同-Xmx
2、年轻代:年老代 ——> -XX:NewRatio=3 ——> old:new=3:1
3、年轻代中:-XX:SurvivorRatio=3 ——> Eden:Survivor ——> 3:2(两个survivor区)
三、设置非堆大小
1、元空间
jdk1.8中PermSize被MetaspaceSize取代,原因及特点可参考:Jdk1.8元空间
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
2、方法缓存
32位 win 默认初始化32m,监控Code Cache,可按照具体情况设置
-XX:InitialCodeCacheSize=64m -XX:ReservedCodeCacheSize=128m
方法区占用量太大,可通过一下参数flush掉,不过还是先应该找出代码中溢出部分
-XX:+UseCodeCacheFlushing
三、GC
CPU > 4core 的可采取:-XX:UseParallelGC
其他:-XX:UseG1GC延迟低