`

实战 JVM 虚拟机调优

阅读更多

今天在做一个接口的性能测试的时候发现以下情况:

查看visualVM的图形如下所示:

Full GC非常平凡,Minor GC次数比较少。立马查看JVM配置如下:

从配置中可以看出Youngh 区分配空间太大,导致old去内存溢出。修改JVM参数如下所示:

JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx1024m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m -XX:SurvivorRatio=22 -XX:MaxTenuringThreshold=6 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/home/member/ma-online/logs/gc.log"

减少Youngh区内存大小为256,增加两个survivor区,并且增加垃圾最大年龄, Youngh区进行ParNewGC策略,old区进行cms策略。配置完成后进行压力测试如下所示:

明显FGC的次数降低。

VisualVM的图形如下所示:

效率大增。

7
1
分享到:
评论
4 楼 hfmj 2012-05-21  
-XX:SurvivorRatio 由默认值8, 变成了22, 是减少了survivor区的大小吧?
3 楼 jlins_you 2012-05-20  
顶起
2 楼 bk_lin 2012-05-20  
不错,谢谢分享了
1 楼 mixer_a 2012-05-20  
挺详细的,学到知识了,谢谢

相关推荐

Global site tag (gtag.js) - Google Analytics