笔记2:Linux 常见故障排障方法(CPU/内存/磁盘/网络/进程)

简介

本篇为 生产排障专用 专门解决:机器卡、负载高、CPU爆、内存炸、磁盘满、网络不通、端口异常、服务挂掉

一、CPU 负载高 / 机器卡顿排障流程

1. 现象区分

  • us高:业务程序吃满CPU
  • sy高:内核压力大
  • wa高:磁盘IO卡死导致负载高
  • 1/5/15持续上涨:系统压力持续累积

2. 排查步骤

  1. top 查看 us/sy/wa
  2. P 找到占用CPU最高PID
  3. ps aux | grep PID 确认是什么程序
  4. 分析:死循环、日志狂打、程序bug

3. 高频故障

故障1:Load很高,但CPU idle很高

原因:IO等待 wa 高 解决:排查磁盘、查看iostat、是否磁盘满/磁盘损坏/大量读写

故障2:sy内核CPU很高

原因:频繁创建销毁进程、频繁IO、频繁系统调用

二、内存故障排障

1. 内存不足现象

  • available 持续降低
  • Swap used 不断上涨
  • vmstat 看到 si/so 大量交换
  • 程序卡死、卡顿、被OOM杀死

2. 排查步骤

  1. free -h 确认内存状态
  2. top M 看哪些进程RES占用大
  3. dmesg -T | grep -i oom 查看是否内核杀进程
  4. 判断:内存泄漏 / 突发内存暴涨

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. 端口无法访问

排查流程:

  1. ss -tulnp 确认端口是否监听
  2. 确认监听地址是 0.0.0.0 还是 127.0.0.1
  3. 防火墙是否放行
  4. 程序是否启动成功

4. 端口占用冲突

ss -tulnp | grep 端口
kill 占用进程

六、服务异常排障(你的http服务场景)

现象:nohup后台程序异常、端口返回000

排查流程:

  1. 查看进程是否存在 ps aux | grep http
  2. 查看日志 tail -f xxx.log
  3. curl检测状态码
  4. 端口是否被占用
  5. 目录权限是否足够

七、生产标准排障顺序(万能套路)

  1. 看整体负载:uptime top
  2. 看内存:free -h
  3. 看磁盘:df -h
  4. 看网络:ip a ss
  5. 看进程:ps top
  6. 看日志:dmesg 应用日志

八、所有高频故障一句话总结

  1. 负载高 wa高 = 磁盘IO问题
  2. 负载高 us高 = 程序CPU问题
  3. swap上涨 = 内存不足
  4. 进程莫名消失 = 大概率OOM
  5. 域名无法解析 = DNS问题
  6. 端口不通 = 监听/防火墙/进程问题
  7. 磁盘爆满 = 日志/垃圾文件堆积

🔗 相关笔记