学习中心/工程实践/Linux/Linux 11:机器病了,按顺序量
· Linux · 11 · 排查
Linux 11:机器病了,按顺序量
磁盘、inode、OOM、负载、网络、防火墙。这条线过关,能独立接手一台 VPS。

机器病了,先量再动
磁盘满、内存不够、load 高、网不通,先量。rm -rf 不是排查。这一块走完,前面七块合在一起,你该能独立接手一台 VPS:定位、止血、留记录。内核调优和发行版定制仍是另一条路;大师不是背完命令,是出事时有顺序。
- 磁盘df / du
- 内存 / 负载free / uptime
- 网络ip / curl
- 再动手不是先删
1. 磁盘
- 看各分区 Use% 和 Avail。100% 时很多服务直接写不进去
df -h - 看inode。小文件把 inode 用尽时,df -h 还显示有空间
df -i - 看先圈范围
du -sh /var /home /tmp /opt - 看谁在 /var 下把空间吃了
du -h --max-depth=1 /var | sort -h
日志、容器、备份最容易写满。定位到目录再删。不要对根目录 rm。清日志用 truncate 或 journalctl --vacuum-size,不要 rm 正在打开的文件然后疑惑空间没回来。
2. 内存和 OOM
- 看Mem 和 Swap。Swap 一直在涨,内存不够
free -h - 看谁最吃内存
ps aux --sort=-%mem | head - 看内核有没有因为内存杀过进程
sudo dmesg -T | grep -i -E "oom|killed process" | tail
OOM killer 杀的不一定是罪魁,常常是大的那个。加内存、减进程、给服务设 MemoryMax,比在机器上猜好。
3. 负载
- 看load。相对 CPU 核数:4 核上长期 8,就是堆着
uptime - 看wa 高是盘,sy 高是内核/系统调用,us 高是用户态在算
top -b -n 1 | head -n 20
load 是队列长度,不是 CPU 百分比。进程在等锁、等盘、等网,load 也会高。不要只升 CPU。
4. 网络
- 看网卡和地址。DOWN 就是没起来
ip -br a - 看默认路由。出不去先看有没有 default
ip r - 看通地址、不通名字,是 DNS
ping -c 3 1.1.1.1 - 看系统实际解析到什么
getent hosts example.com - 看本机服务在不在听
curl -I --max-time 5 http://127.0.0.1/
云厂商安全组挡在机器前面。本机 ufw / nftables 再挡一层。两边都要看。ss -lntp 确认进程听在哪张网卡。
5. 防火墙一眼
- 看Ubuntu 常见。inactive 就不是它在挡
sudo ufw status verbose - 看新的防火墙框架。没有 nft 再试 iptables -L
sudo nft list ruleset
改规则之前先保证 22 还在允许列表。ufw enable 能把你锁在门外。云控制台的紧急控制台是后路。
6. 时间和日志体积
- 看NTP 同不同步。证书和时间乱了会一起坏
timedatectl - 看journal 占多少
journalctl --disk-usage - 收只在确认日志不是你正在查的证据之后
sudo journalctl --vacuum-size=200M
/etc/logrotate.d 管文件日志。服务把盘写满,先看这里有没有转储、转储后有没有 compress。
7. 接手一台 VPS 的底线
- 普通用户登录,sudo 提权。root 密码 SSH 关掉。
- 钥匙在,密码登录关掉。先留一个已连接的窗口。
- apt update && apt list --upgradable。安全更新不要拖几个月。
- 只开放需要的端口。22 能限制来源就限制。
- 备份在这台机器外面。快照不是你试过恢复的备份。
- 改之前记下:df、free、uptime、systemctl --failed。事后才知道你动了什么。
8. 这条线合在一起
终端能接命令,文件能备份和找,Vim 能进出、改一段、多文件,权限能读能改,软件来路清楚,进程按顺序查,SSH 能跳能拷,自己的程序能拉起来,出事先量。每一块过关,这块就不再是短板。
再往上:性能火焰图、网络栈、SELinux 细则、自己编内核、大规模编排。那是工作里长出来的,不装进这一条线。你现在缺的不是另一张地图,是在真实机器上把这些用到不再想起来。
这条线走完,你能独立管机器。大师是判断:先看什么、不碰什么。判断只能在事故里长,但方法已经在这条线里。