笔记2:Linux 常见故障排障方法(CPU/内存/磁盘/网络/进程)
简介
本篇为 生产排障专用 专门解决:机器卡、负载高、CPU爆、内存炸、磁盘满、网络不通、端口异常、服务挂掉
一、CPU 负载高 / 机器卡顿排障流程
1. 现象区分
- us高:业务程序吃满CPU
- sy高:内核压力大
- wa高:磁盘IO卡死导致负载高
- 1/5/15持续上涨:系统压力持续累积
2. 排查步骤
top查看 us/sy/waP找到占用CPU最高PIDps aux | grep PID确认是什么程序- 分析:死循环、日志狂打、程序bug
3. 高频故障
故障1:Load很高,但CPU idle很高
原因:IO等待 wa 高 解决:排查磁盘、查看iostat、是否磁盘满/磁盘损坏/大量读写
故障2:sy内核CPU很高
原因:频繁创建销毁进程、频繁IO、频繁系统调用
二、内存故障排障
1. 内存不足现象
- available 持续降低
- Swap used 不断上涨
- vmstat 看到 si/so 大量交换
- 程序卡死、卡顿、被OOM杀死
2. 排查步骤
free -h确认内存状态top M看哪些进程RES占用大dmesg -T | grep -i oom查看是否内核杀进程- 判断:内存泄漏 / 突发内存暴涨
3. OOM故障重点
- OOM是内核主动杀进程,不是程序崩溃
- 分数越高越先被杀
- 大量swap使用=内存严重不足
4. 内存泄漏特征
- 开机正常,越跑越卡
- 内存每天缓慢上涨,重启恢复
三、磁盘故障排障
1. 磁盘满故障(最常见)
df -h # 查看爆满分区
du -sh /* # 查找大文件
常见元凶:
/var/log日志堆积- core dump 崩溃文件
- 垃圾nohup.out
2. 磁盘IO过高导致系统卡
现象:
- top wa 很高
- CPU idle空闲很多,但负载很高
排查:
iostat 1
iotop
四、进程异常排障
1. 僵尸进程 Z
现象:进程僵死、不退出、占用PID 原因:父进程未回收子进程 解决:重启父进程
2. D不可中断进程
特征:kill 无效、-9也无效 原因:卡在磁盘IO 解决:等待IO完成 / 重启服务器
3. 进程莫名退出
排查:
- 被OOM杀死
- 端口冲突
- 权限不足
- 代码报错
五、网络故障排障(重点)
1. 域名解析失败
报错:Temporary failure resolving 原因:DNS异常 / WSL网络卡死 解决:
- 改
/etc/resolv.conf - 重启WSL
wsl --shutdown
2. 网络完全不通
报错:Network is unreachable 原因:无默认路由、网卡无IPv4 解决:
ip a
ip route
dhclient eth0
3. 端口无法访问
排查流程:
ss -tulnp确认端口是否监听- 确认监听地址是 0.0.0.0 还是 127.0.0.1
- 防火墙是否放行
- 程序是否启动成功
4. 端口占用冲突
ss -tulnp | grep 端口
kill 占用进程
六、服务异常排障(你的http服务场景)
现象:nohup后台程序异常、端口返回000
排查流程:
- 查看进程是否存在
ps aux | grep http - 查看日志
tail -f xxx.log - curl检测状态码
- 端口是否被占用
- 目录权限是否足够
七、生产标准排障顺序(万能套路)
- 看整体负载:
uptime top - 看内存:
free -h - 看磁盘:
df -h - 看网络:
ip a ss - 看进程:
ps top - 看日志:
dmesg 应用日志
八、所有高频故障一句话总结
- 负载高 wa高 = 磁盘IO问题
- 负载高 us高 = 程序CPU问题
- swap上涨 = 内存不足
- 进程莫名消失 = 大概率OOM
- 域名无法解析 = DNS问题
- 端口不通 = 监听/防火墙/进程问题
- 磁盘爆满 = 日志/垃圾文件堆积
评论