- top + H 指令找出占用 CPU 最高的进程的 pid
- top - H - p 否该进程中找到,哪些线程占用的 CPU 最高的线程,记录下 tid
- jstack- l > threads . txt ,导出进程的线程栈信息到文牵,导出出现异常的话,加上一 F 参教
- 将 tid 转换为十六进制,否 threads . txt 中搜索,查到对应的线程代码执行构,在代码中查找占 CPU 比较高的原因。其中 tid 转十六进制,可以借助 Linux 的 printf “% x ‘ tid 指令
我用上述方法查到过,jvm多线程疯狂 fullgc导致的CPU100%的问题和JDK1.6HashMap并发 put 导致线程CPU100%的问题