GC调优案例分享

 

1、  原jvm参数设置如下

-server -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:Server1GC.log –Xms1568M –Xmx2048M -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC

 

2、原GC图如下:

从gc图看到,需要调优点为:

       (1)     Gc频率很高

3、尝试优化JVM(例一)

-server -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:Server1GC.log –Xms3072M –Xmx3072M -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Xmn768m -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=0 -XX:+UseCMSCompactAtFullCollection  -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSScavengeBeforeRemark

4、得到的gc情况(例一)

分析:增大了年轻代,gc减少了,但是full gc增多了。这种情况最好是让对象在年轻代时间长一点,可以使用-XX:SurvivorRatio或者-XX:MaxTenuringThreshold。得到下面例二

5、调优的JVM参数(例二)

-server -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:Server1GC.log –Xms3072M –Xmx3072M -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Xmn512m -XX:SurvivorRatio=2 -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=0 -XX:+UseCMSCompactAtFullCollection  -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSScavengeBeforeRemark

6、调优后Gc图(例二)

可见,例二就是我们要到调优JVM。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值