这个 Linux 命令能让你知道谁在占用 CPU
时间:2026-05-30 22:26:04 阅读:25
服务器 CPU 突然飙升到 100%,你 SSH 上去第一件事是什么?
top 和 htop
top 是标配,但 htop 更好用。颜色标记进程类型、可以用鼠标操作、树状视图查看父子进程。安装也很简单:apt install htop。htop 按 F6 可以按 CPU 或内存排序,一眼看出谁在吃资源。找到具体线程
top -H 显示所有线程,配合 grep 找到目标进程的所有线程。看到哪个线程占 CPU 高后,用 strace -p 线程ID 跟踪它在执行什么系统调用。通常能快速定位到问题是死循环、IO 等待还是锁竞争。perf 深度分析
perf top 实时显示哪些内核函数和用户态函数占用 CPU。比 strace 更轻量,采样分析不影响线上服务。看到某个函数占比异常高,基本就知道该优化哪里了。实战场景
发现 CPU 100% 后:先 htop 找到 PID,然后 top -H -p PID 看线程,再用 strace -p 线程ID 看系统调用。如果 strace 显示大量 futex 调用,说明是锁竞争;如果是 read/write,说明是 IO 问题;如果是大量系统调用但没有实际 IO,大概率是死循环。



提供云计算服务