背景:
执行解析hdfs任务,产生大量磁盘IO,Eden区内存增大斜率接近无穷大,也就是说jconsole获取内存快照的时间间隔内有分配大量内存。好在Old区在任务执行期间未发生FullGC。下面是GC统计:
统计:
持续时间:12小时33分
ParNew GC:17520,367.297秒,平均每次:0.021秒
Full GC:0次,0秒
注意:任务执行前,发生2次Full GC,7次ParNew GC,已在统计中刨去。
这2次FullGC是jvm启动就产生,这点非常不解,因为jvm启动加载的bean应该很小都在Eden区,Old区应该是0,这点说不过去,这里先把结果说下:jvm8的启动参数导致的,加上元数据参数即可。
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m
优化后jvm参数如下:
JAVA_OPTS="-jar -server -Xms2G -Xmx2G -Xmn900M -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
JAVA_OPTS="$JAVA_OPTS -Xss256k"
JAVA_OPTS="$JAVA_OPTS -XX:ParallelGCThreads=30"
JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=8"
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly"
JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=75"
JAVA_OPTS="$JAVA_OPTS -XX:TargetSurvivorRatio=90"
–XX:ParallelGCThreads=30:设置 20 个线程进行垃圾回收;
–XX:+UseParNewGC:年轻代使用并行回收器;
–XX:+UseConcMarkSweepGC:年老代使用 CMS 收集器降低停顿;
–XX:+SurvivorRatio:设置 Eden 区和 Survivor 区的比例为 8:1。稍大的 Survivor 空间可以提高在年轻代回收生命周期较短的对象的可能性,如果 Survivor 不够大,一些短命的对象可能直接进入年老代,这对系统来说是不利的。
–XX:TargetSurvivorRatio=90:设置 Survivor 区的可使用率。这里设置为 90%,则允许 90%的 Survivor 空间被使用。默认值是 50%。故该设置提高了 Survivor 区的使用率。当存放的对象超过这个百分比,则对象会向年老代压缩。因此,这个选项更有助于将对象留在年轻代。
具体见:https://www.ibm.com/developerworks/cn/java/j-lo-jvm-optimize-experience/index.html
================================
后续任务执行结果,明天更新~~~
![](https://img.haomeiwen.com/i1981009/654e7613b4080368.png)
统计:
持续时间:2小时8分
ParNew GC:1550,33.920秒,平均每次0.022秒
Full GC:0次,0秒
两次任务,第一次大,第二次小,但是任务的颗粒相同,因此比较YGC可以发现,即使加大并发线程YGC并不会加快,但是调大Eden区可以减少gc次数,Full GC代价远比YGC大,因此控制好YGC频率即可,此次调优聊胜于无,但是发现CMS启动发生两次FullGC的原因
jvm内存占用比例:
[work@loget-dt-001 wwwroot]$ jstat -gcutil 2083
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 0.82 43.55 60.84 96.38 94.21 17527 367.297 4 0.295 367.592
[work@loget-dt-001 wwwroot]$ jstat -gc 2083
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
69888.0 69888.0 0.0 574.4 559232.0 196848.2 1398144.0 850697.2 75704.0 72964.7 9272.0 8735.0 17527 367.297 4 0.295 367.592
![](https://img.haomeiwen.com/i1981009/87a178633128e842.png)
![](https://img.haomeiwen.com/i1981009/fa562bc59ce5db0a.png)
![](https://img.haomeiwen.com/i1981009/0467bcf9e0f06306.png)
![](https://img.haomeiwen.com/i1981009/2ed4ab26b8adfb93.png)
网友评论