学习中心/工程实践/Linux/Linux 11:机器病了,按顺序量

· Linux · 11 · 排查

Linux 11:机器病了,按顺序量

磁盘、inode、OOM、负载、网络、防火墙。这条线过关,能独立接手一台 VPS。

正在加载录音…

机器病了,先量再动

磁盘满、内存不够、load 高、网不通,先量。rm -rf 不是排查。这一块走完,前面七块合在一起,你该能独立接手一台 VPS:定位、止血、留记录。内核调优和发行版定制仍是另一条路;大师不是背完命令,是出事时有顺序。

  1. 磁盘df / du
  2. 内存 / 负载free / uptime
  3. 网络ip / curl
  4. 再动手不是先删

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
  • 看
    默认路由。出不去先看有没有 defaultip r
  • 看
    通地址、不通名字,是 DNSping -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 -Lsudo 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 细则、自己编内核、大规模编排。那是工作里长出来的,不装进这一条线。你现在缺的不是另一张地图,是在真实机器上把这些用到不再想起来。

这条线走完,你能独立管机器。大师是判断:先看什么、不碰什么。判断只能在事故里长,但方法已经在这条线里。

同模块

工程实践 →