什么是 Swap 可用率

Swap 是系统在物理内存不足时使用的磁盘空间,相当于内存的「溢出区」。

可用率计算公式:

Swap 可用率 = (可用 Swap / 总 Swap) × 100%

例如:总 Swap 2GB,已用 1.3GB,可用率 = 35%。


如何检查 Swap 状态

Linux 系统:

# 查看内存和 Swap 使用情况
free -h

# 实时监控 Swap 读写速率(si/so 列)
vmstat 1

# 查看 Swap 分区详情
cat /proc/swaps

Windows 系统:

任务管理器 → 性能 → 查看「页面文件」使用情况。


异常情况的含义

状态可能原因影响
可用率极低(< 10%)内存严重不足程序启动慢、频繁卡顿、OOM
可用率极高(接近 100%)内存充足或 Swap 配置过大通常无问题
Swap 使用量持续增长内存泄漏需要排查泄漏源

5 种优化策略

1. 调整 swappiness 参数

控制内核使用 Swap 的倾向,值越低越倾向于使用物理内存:

# 临时调整
echo 10 > /proc/sys/vm/swappiness

# 永久生效
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p

服务器建议设置为 10-20,桌面系统可以设置为 60。

2. 增加物理内存

根本解决方案,尤其适合 Swap 频繁被使用的场景。

3. 使用 SSD 作为 Swap

如果必须使用 Swap,SSD 的速度远优于 HDD,能显著减少卡顿感。

4. 使用 ZRAM(内存压缩)

将部分内存用于压缩存储,在不增加硬件的情况下提升有效内存容量:

# 启用 ZRAM
modprobe zram
echo lz4 > /sys/block/zram0/comp_algorithm
echo 2G > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0

5. 关闭不必要的后台进程

定期检查并关闭占用内存的后台服务,减少 Swap 压力。


合理的 Swap 大小

传统建议:物理内存的 1-2 倍。

现代服务器(内存 > 16GB):4-8GB Swap 通常足够,主要用于应急。