JVM调优--排查经历(CMS的弊端)

背景:脚本任务,多线程执行,执行频次非常高;但是执行效率不高,从JVM入手做调优

 

sh-4.2# jstat -gc 64
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
34048.0 34048.0  0.0   34048.0 272640.0 219162.0 5950720.0  5653530.1  91580.0 88224.0 10200.0 9627.7 923832 88231.524 27146 81424.338 169655.863

ygc同样非常频繁3次/s

查看得知fgc特别频繁,大概4次/min

sh-4.2# jinfo -flags 64
Attaching to process ID 64, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.181-b13
Non-default VM flags: -XX:CICompilerCount=3 -XX:CMSInitiatingOccupancyFraction=70 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=null -XX:InitialHeapSize=6442450944 -XX:+ManagementServer -XX:MaxHeapSize=6442450944 -XX:MaxNewSize=348913664 -XX:MaxTenuringThreshold=6 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=348913664 -XX:OldPLABSize=16 -XX:OldSize=6093537280 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC-XX:+UseParNewGC

排查记录

 

 

========================================================

第一次尝试:

思路:增加对象在年轻代的存活时间,尽量让其在年轻代就直接消亡;

1. 调高MaxTenuringThreshold=15;

2. 调高年轻代至整体的3/8

结果:失败;

========================================================

查看配置参数:

-XX:CICompilerCount=3 -XX:CMSInitiatingOccupancyFraction=70 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=null -XX:InitialHeapSize=6442450944 -XX:+ManagementServer -XX:MaxHeapSize=6442450944 -XX:MaxNewSize=348913664 -XX:MaxTenuringThreshold=6 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=348913664 -XX:OldPLABSize=16 -XX:OldSize=6093537280 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC-XX:+UseParNewGC

a. 参数解析:

MaxTenuringThreshold=6

原因

查看文章:https://www.jianshu.com/p/f39cc983a31b原来这是使用CMS的默认配置,在本实例中ygc频率十分高,在此情况下MaxTenuringThreshold应该调高,充分利用年轻代复制算法的速度优势。

解决:

调整MaxTenuringThreshold=15

b. 各块的大小

   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 6442450944 (6144.0MB)
   NewSi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值