乐趣区

关于linux:linux线上CPU100排查

如何定位是哪个服务过程导致 CPU 过载,哪个线程导致 CPU 过载,哪段代码导致 CPU 过载 .

找出零碎中占用 CPU 最高的线程 PID

  • -c 显示服务残缺的门路和名称
> top -c

  • 不要退出 top, 间接输出 P(必须大写), 让 CPU 利用率从大到小排列

比方找到的过程 ID 是 1584

找到最耗 CPU 的线程

一个过程上面个别会有很多的线程, 每个线程对 CPU 的使用率也是不一样的, 咱们须要找到最耗 CPU 的线程 ID

top -Hp 1584,显示一个过程的线程运行信息列表

  • H 打印线程信息
  • p 指定 pid

同样不要退出 top, 键入 P (大写 p),线程依照 CPU 使用率排序

比方咱们找到 CPU 使用率使用率最高的线程 ID 是 1592

将线程 PID 转化为 16 进制

> printf "%x" 1592
638

查看堆栈

> jstack 1584 | grep‘0x638’-C5 --color

这样就能够找到引起 CPU 使用率过高的问题代码地位。

原文链接:https://rumenz.com/rumenbiji/…
微信公众号: 入门小站

退出移动版