用途:面向机器 CPU 飙高、应用响应变慢、负载异常升高等场景,提供一套基于 Arthas 的 JVM CPU 问题排查流程。核心原则是先用低风险工具定位“哪个线程在忙”,再逐步缩小到“哪个方法/代码路径”。
主要能力与步骤:
- 先用 dashboard 查看 CPU、线程数、GC 次数与耗时概况,确认 JVM 整体状态是否异常,建议设置有限次数。
- 用 thread 找出最忙的前 N 个线程并打印堆栈(如 topN=3 或 5),记录热点线程的 threadId 与堆栈关键方法名作为证据。根据堆栈判断方向:若出现在 java.util.regex、JSON 序列化、日志格式化等处,可能是 CPU 密集计算;若为锁竞争,则查看是否有大量 BLOCKED,并考虑用 thread(blocking=true) 找阻塞源头线程。
- 当堆栈指向可疑方法时,优先用 stack / trace 针对该方法做调用路径确认,避免宽泛匹配;如需观测入参/返回值,再考虑 watch 或 tt,并设置合理执行次数与超时,避免压力。
- 输出诊断结论,报告至少含:现象与证据(dashboard 摘要 + topN 线程堆栈关键片段)、初步结论(CPU 主要消耗在计算/锁/GC/日志等哪类逻辑)、下一步建议(trace/watch 的精确类名+方法名,或请用户提供主包名/关键接口信息继续收敛)。
限制:资料未提供具体安装命令、版本要求、skills.sh 上该技能的使用命令及自动化集成方式,暂未提供;实际命令参数与输出格式以目标环境为准。