| name | troubleshooting |
| description | 性能问题排查 Use when this capability is needed. |
| metadata | {"author":"chaterm"} |
性能问题排查
概述
性能瓶颈定位、资源争用分析技能。
快速诊断
USE 方法
mpstat -P ALL 1
vmstat 1 | awk '{print $1}'
dmesg | grep -i "cpu"
free -m
vmstat 1 | awk '{print $7,$8}'
dmesg | grep -i "oom"
iostat -x 1 | awk '{print $NF}'
iostat -x 1 | awk '{print $10}'
dmesg | grep -i "error"
sar -n DEV 1
netstat -s | grep -i "overflow"
ip -s link
60 秒诊断
uptime
dmesg | tail
vmstat 1 5
mpstat -P ALL 1 5
pidstat 1 5
iostat -xz 1 5
free -m
sar -n DEV 1 5
sar -n TCP,ETCP 1 5
top -bn1 | head -20
CPU 问题排查
高 CPU 使用
top -c
ps aux --sort=-%cpu | head
top -H -p PID
ps -T -p PID
perf top -p PID
perf record -g -p PID -- sleep 30
perf report
CPU 等待
vmstat 1
iostat -x 1
iotop
pidstat -d 1
上下文切换
vmstat 1 | awk '{print $12,$13}'
pidstat -w 1
pidstat -wt -p PID 1
内存问题排查
内存不足
free -m
cat /proc/meminfo
ps aux --sort=-%mem | head
smem -rs pss
slabtop
cat /proc/slabinfo
内存泄漏
while true; do
ps -o pid,vsz,rss,comm -p PID
sleep 60
done
valgrind --leak-check=full ./program
OOM 分析
dmesg | grep -i "oom"
journalctl -k | grep -i "oom"
cat /proc/PID/oom_score
cat /proc/PID/oom_score_adj
磁盘 IO 问题
IO 瓶颈
iostat -x 1
iotop -o
pidstat -d 1
磁盘空间
df -h
df -i
du -sh /* | sort -rh | head
find / -type f -size +100M
lsof | grep deleted
网络问题排查
连接问题
ss -s
netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c
ss -tan state time-wait | wc -l
netstat -s | grep -i "overflow"
ss -ltn
带宽问题
iftop
nethogs
sar -n DEV 1
ss -ti
延迟问题
ping target
mtr target
ss -ti | grep rtt
常见场景
场景 1:系统变慢排查
#!/bin/bash
echo "=== 系统负载 ==="
uptime
echo "=== CPU 使用 ==="
mpstat 1 3
echo "=== 内存使用 ==="
free -m
echo "=== 磁盘 IO ==="
iostat -x 1 3
echo "=== 高 CPU 进程 ==="
ps aux --sort=-%cpu | head -5
echo "=== 高内存进程 ==="
ps aux --sort=-%mem | head -5
场景 2:应用响应慢
#!/bin/bash
PID=$1
echo "=== 进程状态 ==="
ps -p $PID -o pid,stat,pcpu,pmem,cmd
echo "=== 线程状态 ==="
ps -T -p $PID
echo "=== 打开文件 ==="
lsof -p $PID | wc -l
echo "=== 网络连接 ==="
ss -tnp | grep $PID | wc -l
echo "=== 系统调用 ==="
strace -c -p $PID -o /tmp/strace.out &
sleep 10
kill %1
cat /tmp/strace.out
排查清单
| 症状 | 检查项 |
|---|
| 系统慢 | load、CPU、内存、IO |
| 响应慢 | 网络、磁盘、锁 |
| 内存高 | 泄漏、缓存、交换 |
| IO 高 | 进程、队列、设备 |
常用工具
htop, atop, glances, nmon
top, mpstat, perf, pidstat
free, vmstat, smem, pmap
iostat, iotop, blktrace
ss, netstat, iftop, tcpdump
Source: chaterm/terminal-skills — distributed by TomeVault.