首页/系统/Linux 运维命令速查/场景:线程级 CPU 定位
进程与作业69 条

场景:线程级 CPU 定位

整机 CPU 高但进程列表看不出:把视角降到线程级(top -H、ps -L),找到热点线程再对应到代码(Java 的 nid、Go 的 goroutine dump)。

Linux 运维命令速查系统更新于 2026-10-12
场景多线程进程内部热点定位
组合top -H + ps -L + 栈工具对应

线程排行

线程排行
top -H -b -n1 | head -20             # 全系统线程视图
ps -L -p 1234 -o pid,tid,pcpu,stat,comm --sort=-pcpu | head

Java 对应

Java 对应
# TID 转十六进制与 jstack 输出对齐:
printf '%x\n' 12345
jstack 1234 | grep -A20 'nid=0x3039'

Go 对应

Go 对应
kill -QUIT 1234          # SIGQUIT 打全量 goroutine 栈到 stderr/日志
# 或访问 pprof:curl -s http://127.0.0.1:6060/debug/pprof/profile?seconds=30 > cpu.pprof

易错点

  • 线程名可重复(如全叫 Worker):定位必须靠 TID 与栈工具交叉,不是靠名字
  • 短暂热点会错过:采样式工具(pprof/perf)比单次 top 更适合抓瞬时

数据来源与参考

  • man 1 top(procps-ng 手册)
  • man 1 ps

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌