Linux 系统排查必备:一条命令揪出 CPU 占用最高的进程
大家好,今天想和大家分享一个我在日常运维工作中经常用到的实用技巧。相信很多朋友都遇到过服务器突然变卡的情况,这时候快速定位问题进程就显得尤为重要了。
1. 那些年我踩过的坑
记得刚入行时,遇到服务器 CPU 飙高的情况,我总是手忙脚乱。要么用 ps aux
看半天找不到重点,要么打开 top
后对着满屏数据发懵。直到前辈教了我这个命令,排查效率直接提升 200%。
2. 神奇的一行命令
这个命令组合我已经用了五年,至今仍是排查 CPU 问题的首选:
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 6
简单解释下:
-eo
指定输出字段(pid, ppid 等)--sort=-%cpu
按 CPU 使用率降序排列head -n 6
只显示前 6 行(5个进程+表头)
3. 实战演示
昨天我们测试服务器就出现了 CPU 100% 的情况,用这个命令立即发现了罪魁祸首:
PID PPID CMD %MEM %CPU
12345 1 /usr/bin/python3 app.py 2.3 98.7
6789 1234 /usr/lib/firefox/firefox 5.1 1.2
...
原来是个 Python 脚本在死循环!通过 kill -9 12345
快速解决了问题。
4. 进阶技巧
如果你想要更详细的信息,可以试试:
ps -eo pid,ppid,user,cmd,%mem,%cpu --sort=-%cpu | head -n 11
增加了 user 字段,显示更多进程。另外,用 top -b -n 1 | head -12
也能达到类似效果。
5. 写在最后
这个小技巧帮我解决了无数次的线上问题。建议大家可以把它加到自己的运维工具箱里,关键时刻真的能救命!如果你有更好的方法,欢迎在评论区交流~
下次遇到服务器卡顿,别再慌慌张张了,试试这个命令吧!
这个命令真的太好用了,每次服务器卡顿都用它快速定位问题 👍
学到了!比top命令更直观,新人表示很受用