
服务器资源瓶颈是工作中最常见的告警类型之一。CPU飙高、内存占满、负载异常——这些症状可能由代码bug、异常流量、配置错误甚至外部攻击引起。快速准确定位问题根源,是每个Linux使用者的必备技能。本篇作为上篇,将重点聚焦高 CPU 问题,从系统指标、进程定位到线程溯源,带你完整掌握 CPU 性能瓶颈的标准化排查流程。
| ③ps aux --sort=-%cpu | |
| ④top -H |

输出解读:
2. top:Linux 最常用的实时进程监控工具,支持排序、筛选、批量输出,方便定位高耗 CPU 进程。
常用命令:
✅ 按 CPU 使用率排序(批处理模式)
# 按CPU排序,取占用最高的前20进程top -b -n 1 -o %CPU | head-20

✅ 按内存使用率排序
# 按内存排序,取占用最高前20进程top -b -n 1 -o %MEM | head -20

✅ 过滤指定进程(按进程名筛选)
# 查看指定进程信息top -b -n 1 -p $(pgrep -d',' sleep) | head -20

✅ 指定用户
# 查看root用户进程,取前20行top -b -n 1 -u root | head -20

✅ 多批次采样(用于记录)
# 连续采样5次CPU/内存数据并保存到文件top -b -n 5 -d 3 > /tmp/top_output.txt

✅ 显示特定进程的树形关系
# 筛选包含 sleep 的进程信息top -b -n 1 | grep --line-buffered sleep
输出结果:

✅ 高亮变化区域
# 仅提取top表头与CPU信息top -b -n 3 -d 2 | awk '/^top -/{print; for(i=1;i<=7;i++){getline; print}}'

3. 线程级别 CPU 分析:定位到进程后,进一步查看内部线程,确认是哪个线程导致 CPU 飙高。
常用命令:
# 显示进程下的所有线程信息top -H

# 查看指定PID进程的线程详情ps -Tp <pid># 过滤显示指定PID的进程/线程信息ps -eLf | grep <pid>


③pidstat查看线程
# 每隔5秒输出线程级别的CPU使用情况pidstat -t 5

# 按CPU排序,展示占用最高的前20个线程top -b -n 1 -H | sort -k9 -rn | head -20

# 格式化输出线程信息,按CPU使用率排序,取前20条top -b -n 1 -H | awk '/^[ ]*[0-9]+/ {pid=$1cpu=$9cmd=$12# 简化输出printf "CPU:%5s PID:%6s %s\n", cpu, pid, cmd}' | sort -t: -k2 -rn | head -20


