JVM:调优参数与排查工具
常用 GC 与堆参数,jps/jstat/jmap/jstack 排查套路,OOM 与 CPU 飙高的定位。
本节你将能
说出关键 JVM 参数,并给出 OOM / 死循环 / 卡顿的标准排查流程。
核心要点
- 关键参数:-Xms/-Xmx 堆、 -Xmn 新生代、-XX:SurvivorRatio、-XX:+UseG1GC。
- GC 选择:G1(平衡,JDK9+ 默认)、ZGC/Shenandoah(低延迟大堆)。
- jps 看进程;jstat -gc 看 GC 统计;jmap -dump 抓堆;jstack 抓线程栈。
- OOM:MAT 分析堆转储找大对象/泄漏;CPU 高用 top -Hp + jstack 定位忙线程。
- 调优思路:先定目标(吞吐/延迟),再压测,看 GC 日志,避免过早与过度调优。
面试连招
常被追问:怎么排查内存泄漏?GC 日志怎么看?为什么 Full GC 频繁?
常见坑
堆设得过大导致 GC 停顿久;用 jmap -histo 误杀生产;无 GC 日志无法复盘。