1. Linux系统故障排查全景指南
作为在Linux运维领域摸爬滚打多年的老手,我见过太多因为基础故障排查不熟练导致的"血案"。本文将分享我积累的CPU、内存、磁盘、网络四大核心故障排查方法论,每个指令都经过生产环境验证,附带实战中总结的"看门道"技巧。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. CPU故障深度排查指南
2.1 核心监控指令解析
top命令是CPU排查的第一道防线。在生产环境中,我习惯用top -b -n 1 | head -12快速获取系统快照。重点关注三个黄金指标:
- Load Average:三个数值分别代表1/5/15分钟的平均负载。当1分钟值持续超过CPU物理核心数(通过
nproc查看)时,系统已过载。我曾遇到一个案例:某台8核服务器负载长期在15以上,最终发现是某个Java进程的GC配置不当导致 - %CPU列:不仅看数值高低,更要观察
us(用户态)和sy(内核态)的比例。如果sy超过30%,往往意味着系统调用过多或驱动有问题 - wa值:IO等待百分比。去年排查过一个"CPU性能差"的假象案例,实际是存储阵列故障导致wa值高达70%
mpstat -P ALL 1是多核CPU分析的利器。关键技巧:
bash复制# 结合watch实现高亮刷新
watch -d -n 1 'mpstat -P ALL 1 1 | grep -v Average'
重点关注核心间负载是否均衡。曾发现某台服务器CPU0持续100%而其他核心空闲,最终定位到网卡中断绑定问题。
2.2 高级诊断技巧
当基础指令无法定位问题时,需要祭出这些进阶工具:
perf top:实时显示热点函数。某次性能调优中,发现80%的CPU时间消耗在__spin_lock上,最终定位到内核参数spinlock配置不当pidstat 1:进程级监控。配合-t参数可看到线程详情,特别适合排查Java应用strace -cp <pid>:统计系统调用。曾用此命令发现某个进程每秒执行上万次stat()调用,原来是配置文件路径错误导致反复查找
关键经验:当CPU软中断(
si)过高时,用cat /proc/softirqs查看具体类型。网络包处理通常对应`NET_RX
