JVM实践-记录一次jvm堆内存调整(十)
说明
线上内存告警占用了90%+ 订单服务占用了42% 8.3g,分析订单服务是否可以降低配置。
分析
1.查看应用实际占用内存
cat /proc/{pid}/status
2.查看jvm启动参数
3.查看高峰期的时候jvm内存增长率
jstat -gcutil {pid} 1000 500 1000:1秒采集一次 500:采集500次
结论:
1.eden区108秒会触发回收一次,每次回收上一次耗时 和下一次耗时详见得出3.234-3.222=0.012s 回收用了 12毫秒
2:老年代上次回收和下一次回收空间是一致的,表示几乎没增长
3.eden区平均每秒增长率:108/100=1.8
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
0.00 57.89 0.58 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 1.32 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 1.90 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 3.05 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 3.65 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 3.83 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 5.58 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 6.41 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 7.55 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 8.29 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 8.89 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 10.62 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 11.34 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 12.79 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 13.52 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 13.95 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 15.36 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 16.56 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 17.74 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 18.88 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 19.48 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 20.99 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 21.90 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 22.89 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 23.49 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 25.24 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 26.77 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 29.01 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 29.85 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 30.68 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 32.09 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 32.92 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 33.58 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 34.96 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 36.34 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 37.91 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 38.24 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 39.38 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 41.50 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 42.82 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 43.40 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 44.13 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 45.13 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 45.70 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 46.54 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 47.56 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 48.43 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 48.85 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 50.25 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 51.50 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 52.66 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 53.27 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 53.48 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 54.66 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 55.39 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 56.55 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 57.28 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 57.85 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 58.43 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 59.16 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 59.74 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 60.47 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 61.88 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 63.18 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 63.76 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 65.48 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 67.22 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 67.39 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 67.96 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 68.95 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 69.11 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 69.95 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 70.96 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 72.52 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 73.26 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 73.85 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 74.44 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 75.03 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 75.86 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 76.44 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 77.71 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 79.56 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 80.04 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 81.03 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 81.46 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 81.47 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 81.64 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 82.79 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 84.09 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 84.10 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 84.26 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 85.41 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 87.13 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 87.96 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 89.53 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 90.12 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 90.72 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 92.08 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 93.42 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 93.76 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 94.49 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 94.84 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 94.88 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 96.38 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 96.74 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 97.33 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 98.97 9.84 92.58 90.41 139 3.222 4 0.648 3.870 0.00 57.89 99.55 9.84 92.58 90.41 139 3.222 4 0.648 3.870
4.查看jvm内存使用情况
结论:
1.通过上面的采集多采集几次发现老年代使用了9% 并且没有什么增长。老年代是否可能太空闲
4.根据默认配置计算预期的堆内存大小
年轻代与老年代比例=1:2
eden区和2个survivor区比例:8:1:1
3506438144 byte/108=32467019.851852 byte 每秒增长
我们通过降低eden区大小和提高频率至少在20秒以上:按照现在的增长率在50秒回收一次,如果低峰期可能时间延长 高峰期我们预计再按2倍计算 则在25秒左右触发 按3倍计算在16秒左右
eden区大小=32467019.851852 byte *50=1623350992.5926byte=1.5g 左右
年轻代大小=1623350992.5926/(8/10)=2029188740.7408 byte=1.8898292824074625g
老年代大小2029188740.7408*2=4058377481.4816=3.779658564814925g
总的堆大小=2029188740.7408+4058377481.4816=6087566222.2224=5.6694878472223875g
5.然后调整jvm参数后期观察
观察高峰期的回收频率和回收次数,以及full gc的回收频率和回收时间(2~5天一次)
针对form和to没按8:1:1配置
jdk8没有指定垃圾回收策略默认使用的
-XX:+UseParallelGC = Parallel Scavenge + Parallel Old
可以通过jinfo确认 jinfo使用:https://www.cnblogs.com/LQBlog/p/10691903.html#autoid-3-4-0
参考:https://www.cnblogs.com/LQBlog/p/9205848.html#_label6
针对刚上线堆大小设置
我觉得可以先设置一个较大的值,然后通过以上步骤 计算调整 观察 再调整