十四、故障排查图谱
所有路径都从现象(Symptom)出发,不从猜测的原因出发。候选原因只有在日志、指标、组件状态或可重复实验支持后才能确认为根因。
| 故障现象 | 首要指标 | 关联组件 | 首个工具 |
|---|---|---|---|
| CPU 使用率高 | linux.metric.cpu_utilization | CPU、运行队列与上下文切换 | perf |
| Load Average 高 | linux.metric.load_average | CPU 调度、优先级与负载 | vmstat |
| 内存持续增长 | linux.metric.process_rss | 栈、堆、匿名内存与文件映射 | pmap |
| OOM Kill | linux.metric.memory_psi | OOM 与内存控制 | dmesg |
| Swap 使用异常 | linux.metric.swap_in_out | 页缓存、回收与 Swap | vmstat |
| 磁盘空间不足 | linux.metric.disk_usage | ext4、XFS、Btrfs、tmpfs 与 procfs | df |
| Inode 耗尽 | linux.metric.inode_usage | Inode、Dentry 与文件描述符 | df |
| 磁盘 I/O 延迟高 | linux.metric.io_latency | 块设备与块层 | iostat |
| 文件描述符耗尽 | linux.metric.fd_count | Inode、Dentry 与文件描述符 | lsof |
| 僵尸进程过多 | linux.metric.run_queue | 退出、僵尸与子进程回收 | ps |
| 服务启动失败 | linux.metric.service_failures | 服务生命周期 | systemctl |
| 端口无法访问 | linux.metric.socket_count | 网络栈、网卡与 Socket | ss |
| DNS 解析异常 | linux.metric.packet_drops | IPv4/IPv6、邻居、路由、DNS 与 DHCP | resolvectl |
| TCP 连接过多 | linux.metric.socket_count | TCP、UDP 与连接状态 | ss |
| 丢包、重传与网络延迟 | linux.metric.tcp_retrans | TCP、UDP 与连接状态 | nstat |
| SSH 无法登录 | linux.metric.auth_failures | sudo、PAM 与 SSH | journalctl |
| 权限拒绝 | linux.metric.auth_failures | UID、GID、权限、Umask 与 ACL | ausearch |
| 容器资源受限 | linux.metric.cgroup_pressure | Cgroup v2 与资源控制 | systemd_cgtop |
通用证据顺序
- 记录影响范围、起始时间、业务症状和最近变更。
- 确认主机、容器、Namespace、Cgroup 和用户身份作用域。
- 先看多周期指标,再定位进程、连接、文件或设备。
- 用日志、系统调用或内核追踪验证候选原因。
- 先缓解、后根治、再以同口径回归;保留回滚路径。
