← 返回图谱目录

排障速查 · v1.2 · 10 个模块

Linux 性能工具综合图

从服务状态到 CPU、内存、磁盘与网络,用基础工具定位,再按证据深入。

下载 SVG 原图
1.0×
点击框内区域,展开模块说明拖动平移 · 滚轮 / 双指缩放

读图提示

看指标,也看现场。

命令中的 PID、SERVICE、IFACE 等占位符需替换为实际值。图中的分隔符用于列出独立检查项;复制按钮已按单条命令整理。结合业务影响、基线和时间窗口判断。

图谱署名:老男孩教育-李导996 · v1.2 · 2026-10-22

来源与参考

前两张图依据 Brendan Gregg 图谱改编,保留 CC BY-SA 4.0 许可及原作者来源。

下载原始 SVG,保留完整署名与说明 ↗
展开全部模块文字版

第一轮快查

业务影响 → 服务状态 → CPU / 内存 / 磁盘 / 网络。

命令

uptime
vmstat 1 5
free -h
df -hT
ss -s
sar -u -r -n DEV 1 5

判断依据

  • 指标结合基线、持续时间与业务影响。

注意事项

  • sar -u -r -n DEV 1 5 为实时采样;历史回看须预先启用 sysstat 采集。
  • SERVICE / PID / DIR / IFACE / URL / CT / POD / NS 须替换。PSI 需内核支持。

01 服务、进程与日志

服务是否正常?哪个进程报错或受限?

命令

systemctl status SERVICE --no-pager
journalctl -u SERVICE --since "10 min ago"
journalctl -k --since "10 min ago"
ps -ef
lsof -p PID
systemctl show SERVICE -p LimitNOFILE

判断依据

  • 关联请求时间、发布与错误日志。
  • 打开文件限制同时核查 /proc/PID/limits。

注意事项

  • 进程存在不等于服务可用。

02 DNS、HTTP 与访问链路

解析、建连、证书还是应用响应出了问题?

命令

dig +short app.example.com
getent ahosts app.example.com
curl -v --connect-timeout 3 --max-time 10 URL
curl --resolve app.example.com:443:10.0.0.20 URL
nc -vz -w 3 10.0.0.20 443

判断依据

  • dig 查 DNS;getent 按主机名称服务配置解析。

注意事项

  • --resolve 与 URL 域名、端口匹配,可保留 Host / SNI。

03 CPU 与调度

各核利用率、运行队列、切换、节流与等待。

命令

mpstat -P ALL 1 5
pidstat -u -w -p PID 1 5
top -H -p PID
vmstat 1 5
cat /proc/pressure/cpu

判断依据

  • 单核热点、宿主机争用与 cgroup 节流要分开判断。

注意事项

  • 高负载也可能包含不可中断睡眠任务。

04 内存与交换区

可用内存、进程 RSS、换页、OOM 与内存压力。

命令

free -h
vmstat 1 5
ps -eo pid,comm,rss,%mem --sort=-rss
pidstat -r -p PID 1 5
swapon --show
cat /proc/pressure/memory

判断依据

  • 结合 available、si/so 与 PSI。
  • 内核日志及 memory.events 用于区分主机和容器 OOM。

注意事项

  • 低 free 不等于内存不足。

05 文件系统与块设备

空间、inode、延迟、队列、吞吐与 I/O 压力。

命令

df -hT
df -i
lsblk -f
findmnt
du -xhd1 DIR
iostat -xz -y 1 5
pidstat -d -p PID 1 5
lsof +L1
cat /proc/pressure/io

判断依据

  • 先区分容量问题和 I/O 性能问题。
  • SSD / RAID 不能只靠 %util 判定饱和;云盘还看配额。

注意事项

  • du 限定目标目录。

06 网络协议栈与网卡

监听、路由、带宽、错误、重传与连接队列。

命令

ip -br address
ip route get 10.0.0.20
ip -s link
ss -s
ss -lntp
ss -tin
ping -c 4 10.0.0.20
tcpdump -ni IFACE -c 100 'host 10.0.0.20 and port 443'
ethtool -S IFACE

判断依据

  • ping 不通不等于 TCP 不通;必要时双端抓包。

注意事项

  • 网卡统计依赖驱动;宿主机与容器的网络视图要分清。

系统组成与观测落点

从应用、系统调用到内核子系统、驱动、硬件与云资源,定位观测层次。

判断依据

  • 每层都看 USE:利用率、排队/等待、错误。
  • 业务指标 + 系统指标;日志 + 调用链。

注意事项

  • 系统调用接口包括文件、套接字、内存。
  • 内核子系统包括调度器、虚拟内存、虚拟文件系统与块层、套接字/TCP/IP。

容器与配额核查

先找对命名空间,再核对资源限额。

命令

docker stats --no-stream
docker logs --tail 100 CT
docker inspect CT
kubectl top pod -n NS
kubectl describe pod POD -n NS
kubectl logs POD -n NS --tail=100
kubectl logs POD -n NS --previous

判断依据

  • 目标 cgroup v2 目录:cpu.stat / cpu.max、memory.events / memory.max、io.stat;路径由实际进程确定。
  • 持续监控:node_exporter + Prometheus / Grafana(或 Zabbix);业务可用率、P95/P99 与错误率同步看。

注意事项

  • 主机空闲 ≠ 容器有配额。
  • 重启前日志用 --previous;多容器加 -c CONTAINER;top 需 Metrics Server。

按需深入与专项工具

基础指标已指向具体方向,再升级工具。

命令

perf top -p PID
strace -p PID -tt -T

判断依据

  • 进程热点与系统调用:perf top、strace。
  • eBPF 按需入口:bpftrace;BCC:runqlat / biolatency / tcpretrans。
  • 专项诊断:mtr 用于路径对比;硬件、NUMA、GPU 工具另选。

注意事项

  • strace 短时、限范围;跟踪/抓包先限定进程、时长或报文数量。
  • eBPF 安装方式、脚本路径与权限按发行版核对。