pidstat -p pid 可实时监控单个进程cpu负载,需指定采样间隔(如1秒),默认输出%cpu、%usr、%system及运行cpu核;加-t可查看线程级负载,pgrep可自动获取pid。

直接用 pidstat -p PID 加采样间隔,就能实时看单个进程的 CPU 负载。
比如查 PID 是 1234 的进程,每秒刷新一次:
pidstat -p 1234 1
不写间隔参数(如只输 pidstat -p 1234),命令会立刻执行并退出,看不到持续数据。
关键点说明:
快速找 PID 并监控(避免手动 grep 抄错):
```bash pidstat -p "$(pgrep -f 'nginx')" 2 ``` `pgrep -f` 匹配完整命令行,适合带参数启动的服务;若匹配多个进程,`pidstat` 也支持同时监控多个 PID(空格分隔)。想看线程级 CPU 分布(比如 Java 多线程应用):
```bash pidstat -p 1234 -t 1 ``` 加 `-t` 后会展开所有线程(TID),每行显示线程 ID 和各自 `%CPU`,配合 `jstack 1234` 可定位高负载线程在执行什么代码。注意采样精度与稳定性:
- 进程生命周期短于采样间隔(如 1 秒采样,进程只活 300ms),可能漏掉或显示为 0.00 - 想更贴近实时感,可缩到 `0.1` 秒:`pidstat -p 1234 0.1`,但输出密集,慎用于生产环境长期运行不复杂但容易忽略。











