sar -B 通过监控 pgpgin/s、pgpgout/s 和 majflt/s 三个指标反映内存换页行为,其中 majflt/s 持续高于 1–5 次/秒是内存紧张的核心预警信号,结合 pgpgout/s 上升和 kbmemfree 萎缩可判定内存挤压风险。

用 sar -B 监控页面交换速率,是判断内存是否紧张、是否存在潜在内存挤压风险的有效手段。它不直接显示“内存不足”,而是通过换页行为(page in/out)的频率和强度,暴露内核正在频繁回收内存的信号——这往往是内存即将告急的前兆。
关键看三个指标:pgpgin/s、pgpgout/s 和 majflt/s
-
pgpgin/s:每秒从磁盘或 swap 读入内存的千字节数(KB/s) -
pgpgout/s:每秒从内存写入磁盘或 swap 的千字节数(KB/s) -
majflt/s:每秒发生的主缺页(major page fault)次数——这是最核心的预警信号
主缺页意味着进程访问的页面不在内存中,必须从磁盘(如 swap 或文件)同步加载,会显著拖慢响应。持续高于 1–5 次/秒(视负载而定),尤其在业务低峰期仍居高不下,说明内存已无法容纳活跃工作集。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
实际操作建议如下:
- 实时短周期观察:
sar -B 2 5(每2秒采样1次,共5次),快速捕捉瞬时抖动 - 长期趋势分析:
sar -B 60 60(每分钟1次,持续1小时),结合业务节奏看波动规律 - 对比历史基线:若日常
majflt/s均值为 0.3,某天突增至 8.2 且伴随pgpgout/s > 1000 KB/s,基本可判定内存资源被持续挤压 - 注意排除干扰:容器环境或 KVM 虚拟机中,
%steal高可能掩盖真实内存压力,需同步查sar -r看%memused和kbmemfree是否同步走低
辅助验证动作:
- 查当前空闲内存:
free -h看available列是否持续低于总内存的 10% - 查 swap 使用:
swapon --show+sar -W 1 3看pswpin/s/pswpout/s是否活跃 - 查进程内存分布:
ps aux --sort=-%mem | head -10快速定位内存大户
只要 majflt/s 持续偏高 + pgpgout/s 明显上升 + kbmemfree 缓慢萎缩,即使 free 显示还有几百 MB free,系统也已在“内存挤压”边缘。这时扩容内存、优化应用缓存或限制进程 RSS 是更稳妥的选择。

















