
Linux 内存运维的核心,是判断「可用内存是否真的够用」。看 free -h 的 available 字段,看 vmstat 的 si/so,再回到 dmesg 找 OOM 记录——这条排查链在生产环境被反复验证过。
凌晨两点,某电商公司的运维老张收到一条 CPU 告警,登上去一看:free -h 显示总内存 32G,已用 28G,available 还有 3.2G。第一反应是「还够」。
但他知道另一件事——available 下面那行 buff/cache 占着 18G,那部分是可回收的。再敲 vmstat 1 5,si(swap in)和 so(swap out)每行都在跳。这说明系统一直在磁盘和内存之间来回换页,磁盘 I/O 撑满了,CPU 自然飙高。
这不是「内存不够」,而是「内存紧张但还能撑」。要判断到底是哪一种状态,关键看三个指标。
free -h:看 available,别只盯 free
free 命令输出里,total 是物理内存总量,used 是当前被进程实际占用的部分,available 是内核估算的「还可以分给新进程的内存」——它会把可回收的 buff/cache 算进去。
所以 free 字段看着小,不代表真的紧张。Linux 会把空闲内存拿来做磁盘缓存(buff/cache),这部分一旦进程需要,可以立刻释放(来源:源摘要明确「buff/cache 可自动回收」)。
实操建议:用 free -h 看 available,只要它不为零且高于业务常用水位,进程大概率不会被杀。新人常见误区是盯着 free 看,看到数值小就急着加内存,结果 buff/cache 反而被释放,性能没变化,内存条白花钱。
vmstat:si/so 才是真实缺内存信号
available 不为零,也可能已经出问题。判断缺不缺内存的更硬指标,是虚拟内存(swap)的换页活动。
vmstat 1 输出里,si 列表示每秒从磁盘换入内存的页数,so 列表示每秒换出到磁盘的页数。物理内存够用时,这两列长期为零。一旦持续非零,意味着内核在频繁换页——磁盘速度比内存慢几个数量级,业务延迟会直线上升(来源:源摘要原文「真实缺内存信号是 vmstat 中 si/so 持续非零」)。
可以写一行巡检脚本:vmstat 1 5 | awk 'NR>2 {if ($7+$8>0) print "swap active"}'。这条逻辑适合做成定时任务,每分钟跑一次,出现 swap active 就告警。落到运维智能体的场景里,这正好是 L0 被动监控能接的事——阈值由用户自己定,触发后只记录、不动手,等人来决定。
dmesg:OOM Killer 的案发现场
当 swap 也撑不住,内核会启动 OOM Killer,挑选内存占用最高的进程杀掉。系统在 /var/log/messages 或 dmesg 日志里会留下记录,类似这段:
Out of memory: Killed process 12345 (java) total-vm:8388608kB anon-rss:6123456kB
调出来用 dmesg | grep -i out of memory,能看到被杀进程、PID、当时内存占用。这是事后定位的关键证据(来源:源摘要「OOM Killer 可通过 dmesg 日志定位」)。
处理路径分三步:先看 dmesg 确认是 OOM、不是别的原因;再看被杀的进程是核心服务还是可重启的;最后评估是加物理内存、调进程内存上限(如 Java 的 -Xmx),还是把 swap 调大兜底。
这一步在 L0-L3 分级机制里属于 L2 治疗剧本——任何调整都要先呈给用户看证据链,等批准后再执行;如果剧本执行失败,自动转人工兜底,不让进程在错误配置下反复被杀。
把巡检脚本装进自动化
对家庭和 SMB 场景,服务器、收银机、轻量 NAS 半夜出事的概率不低,但手动巡检撑不起 7×24。一个常见做法是把上面三条命令组装成巡检脚本:free -h 取 available,vmstat 看 si/so 是否非零,dmesg 抓 OOM 记录,输出落到日志,超过用户设定阈值再叫醒人。
这种多设备巡检 + 证据链审批的活,正是 OmegaBrain 这类 AI 运维智能体设计来处理的事。它把 free、vmstat、dmesg 三条命令做成 L1 主动体检的默认剧本,低峰期跑一遍,结果聚合进巡检日志供用户随时回看;需要动手时按 L2 走审批,审批页里把 free 输出、vmstat 输出、dmesg 片段一并贴上——你看到证据才批准,批准后智能体才动。这比「瞄一眼 free 就去加内存」的应急操作多了一道门槛,也少了一次半夜误操作。
收一下
内存问题不是「看 free 数字」一句话能定的。它至少要 cross-check 三个信号源:available 给出总盘,si/so 给出当下的紧张度,dmesg 给出过往的 OOM 记录。三者合在一起,才是一条完整的证据链。
家庭用户、公司 IT 负责人在自己服务器、收银机、轻量 NAS 出问题时,按这套顺序排查,定位会比直接重启快得多。
想系统看这类设备运维手册与自动化巡检方案,可以关注本品牌,后续会持续更新跨平台设备的运维实操文章。
内容来源:公开信息整理;本文部分由OmegaBrain AI助手改写,仅供行业参考。













