JVM 99%情况下不需要调优
使用性能更好的垃圾回收器
核心指标
针对单台服务器而言:
jvm.gc.time: 每分钟GC耗时在1s以内 500ms以内最佳
jvm.gc.meantime: 每次YGC耗时在100ms以内,50ms以内最佳
jvm.fullgc.count: FGC(老生代垃圾回收)最多几小时1次,一天不到1次最佳 一次FGC伴随一次卡顿
jvm.fullgc.time: 每次FGC耗时在1s以内,500ms最佳
JVM优化步骤
CPU指标
查看占用CPU最多的进程
查看占用CPU最多的线程
查看线程堆栈快照信息
分析代码执行热点
查看那个代码占用CPU执行时间最长
查看每个方法占用CPU时间比例
JVM内存指标
查看当前堆内存参数是否合理(基于线上机器的内存)
查看堆区域的内存增长是否正常
查看堆区域那个导致的GC
查看GC后能否正常回收到内存
JVM GC指标
查看每分钟GC时间是否正常
查看每分钟YGC次数是否正常
查看FGC次数是否正常
查看单次FGC时间是否正常
查看单次GC各阶段详细耗时,找到耗时严重的阶段