常见现象:频繁 GC
1. 回顾GC流程
在了解下面内容之前,请先花点时间回顾一下GC的整个流程。

接前面的内容,这个情况下,我们自然而然想到去查看gc 的具体情况。
- 方法a : 查看gc 日志
- 方法b :
jstat -gcutil 进程号 统计间隔毫秒 统计次数(缺省代表一致统计 - 方法c : 如果所在公司有对应用进行监控的组件当然更方便(比如Prometheus + Grafana)
这里对开启 gc log 进行补充说明。一个常常被讨论的问题(惯性思维)是在生产环境中GC日志是否应该开启。因为它所产生的开销通常都非常有限,因此我的答案是需要开启。但并不一定在启动JVM时就必须指定GC日志参数。
HotSpot JVM有一类特别的参数叫做可管理的参数。对于这些参数,可以在运行时修改他们的值。我们这里所讨论的所有参数以及以“PrintGC”开头的参数都是可管理的参数。这样在任何时候我们都可以开启或是关闭GC日志。比如我们可以使用JDK自带的jinfo工具来设置这些参数,或者是通过JMX客户端调用HotSpotDiagnostic MXBean的setVMOption方法来设置这些参数。
这里再次大赞arthas❤️,它提供的vmoption命令可以直接查看,更新VM诊断相关的参数。
获取到gc日志之后,可以上传到GC easy帮助分析,得到可视化的图表分析结

最低0.47元/天 解锁文章
6226

被折叠的 条评论
为什么被折叠?



