记一次简单的JVM调优

在使用jstat观察线上机器的巡行情况时,发现在运行周期内,ygc非常频繁,但是没有一次fgc,并且o区使用率非常低

image.png

考虑到我们的项目,请求量十分巨大,但是每个请求只会处理200ms左右,大部分对象没有进入O区,线程已经消亡,于是选择一台线上机器,修改其JVM参数,增大新生代占比:

记一次简单的JVM调优_第1张图片
image.png

然后使用jstat命令,以10s一个周期对gc进行监控

记一次简单的JVM调优_第2张图片
image.png

发现一次ygc的间隔大大缩短,o区有所增大但是依然占用率很低。

等待程序运行5-6个小时以后,拿一台没有修改过的机器与我们修改以后的机器做一下比较:

记一次简单的JVM调优_第3张图片
image.png

结果发现,gc次数大概少了一半,gc耗时节约大概1/3,虽然平均每次gc的耗时增加,但是几乎可以忽略,O区的占用也非常合理。


欢迎关注公众号交流,定期分享源码心得


记一次简单的JVM调优_第4张图片
image.png

你可能感兴趣的:(记一次简单的JVM调优)