Linux 下 Swap 分区大小的确定
一 核心原则
二 快速参考表
| 场景 | RAM 大小 | 建议 Swap | 说明 |
|---|---|---|---|
| 通用桌面/服务器 | ≤ 2GB | 2× RAM | 旧规则,小内存需更大 Swap 缓冲 |
| 通用桌面/服务器 | 2–8GB | = RAM | 兼顾缓冲与性能 |
| 通用桌面/服务器 | 8–64GB | 4–8GB | 现代系统常见做法 |
| 通用桌面/服务器 | > 64GB | 2–4GB | 大内存下不必过大 |
| 启用休眠 | 任意 | ≥ RAM | 需容纳全部内存镜像 |
| 云/容器/轻量 VM | 任意 | 1–2GB 或关闭 | 视稳定性与 I/O 权衡 |
| 内存密集型(DB/虚拟化) | 任意 | 在通用基础上适度增加 | 结合监控与峰值评估 |
以上区间综合了主流做法:传统“倍数法”、现代“小 Swap”策略、休眠下限与云环境实践,可按实际工作负载微调。
三 按场景细化
四 实施与调优要点
free -h、swapon --showdd if=/dev/zero of=/var/swapfile bs=1M count=4096 → chmod 600 /var/swapfile → mkswap /var/swapfile → swapon /var/swapfile/etc/fstab 添加 /var/swapfile swap swap defaults 0 0vm.swappiness(默认约 60)调节换出倾向;桌面/响应优先可调低(如 10–30),内存紧张或批处理可适度提高。示例:sysctl -w vm.swappiness=10(持久化写入 /etc/sysctl.conf)。free、换入/换出速率、OOM 事件与应用延迟;先给出区间值,再依据压测与线上监控收敛到合适大小。