CPU 占用 100% 的定位与修复
top 显示某个进程或核持续 100%,接口变慢,负载升高。多核机器上可能是单线程打满,也可能是整体过载。
top -Hp <pid>
pidstat -p <pid> 1 5
ps -eo pid,ppid,comm,%cpu --sort=-%cpu | head -10
perf top -p <pid>
perf record -F 99 -p <pid> -g -- sleep 30
perf report
strace -c -p <pid> -f
容器里先确认是否被 CPU limit 节流:
cat /sys/fs/cgroup/cpu.stat
cat /sys/fs/cgroup/cpu.max
top -Hp 找到热点线程,再用 perf 采样定位函数。cpu.stat 的 throttled_usec。top — 进程和线程 CPUperf — 采样与火焰图pidstat — 进程级统计strace — 系统调用耗时合上页面,先回答,再展开对照。
cpu.stat 中 throttled_usec 和 cpu.max。这样才能区分“真忙”和 CPU limit 过低导致的节流。top -Hp <pid> 找到热点线程。再用 perf top 或 perf record + perf report 定位函数。