写点什么

linux 线上 CPU100% 排查

作者:入门小站
  • 2022 年 5 月 03 日
  • 本文字数:437 字

    阅读完需:约 1 分钟

如何定位是哪个服务进程导致 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" 1592638
复制代码

查看堆栈

> jstack 1584 | grep ‘0x638’ -C5 --color
复制代码


这样就可以找到引起 CPU 使用率过高的问题代码位置。


原文链接:https://rumenz.com/rumenbiji/linux-cpu-100.html微信公众号:入门小站


  • 回复【1001】获取 linux 常用命令速查手册

  • 回复【10010】获取 阿里云 ECS 运维 Linux 系统诊断

  • 回复【10012】获取 Linux 学习笔记【强悍总结值得一看】

  • 回复【10013】获取 shell 简明教程



发布于: 刚刚阅读数: 2
用户头像

入门小站

关注

还未添加个人签名 2020.01.18 加入

还未添加个人简介

评论

发布
暂无评论
linux线上CPU100%排查_Linux_入门小站_InfoQ写作社区