1 【线上CPU飙升100%问题排查,这一篇就够了! - 程序员大彬 | 小红书 - 你的生活指南】 😆 inIbcrVN8vGCvEc 😆 http://xhslink.com/oLuz0S

image.png

对于互联网公司,线上 CPU 飙升的问题很常见(例如某个活动开始,流量突然飙升时),特此整理排查方法一篇,供大家参考讨论提高。

问题复现

线上系统突然运行缓慢,CPU 飙升,甚至到 100%,以及 Full GC 次数过多,接着就是各种报警;例如接口超时报警等。此时急需快速线上排查问题。

问题排查

1.核心排查步骤

  1. 执行 top 命令:查看所有进程占系统 CPU 的排序。极大可能排第一个的就是咱们的 java 进程(COMMAND列)。PID 那一列就是进程号。
  2. 执行 top -Hp 进程号命令:查看 java 进程下的所有线程占 CPU 的情况。
  3. 执行 printf %x\n 10:后续查看线程堆栈信息展示的都是十六进制,为了找到咱们的线程堆栈信息,咱们需要把线程号转成16进制。例如,printf %x\n 10 ->> 打印:a,那么在 jstack 中线程号就是 0xa。

image.png