核心结论:通常情况下,现代桌面系统推荐 swap 大小为物理内存的 0.5 倍至 2 倍,服务器则建议使用较小的 swap 或不设置(依赖充足物理内存)。
具体设置需根据物理内存大小、使用场景(休眠需求)以及硬盘类型(SSD/HDD)综合决定。以下是详细建议方案:
| 物理内存 (RAM) | 推荐 Swap 大小 | 说明 |
|---|---|---|
| ≤ 2GB | 2倍 RAM | 内存较小,严重依赖 swap 防止系统卡死。 |
| 2GB - 8GB | 1倍 RAM | 平衡选择,兼顾内存溢出保护和日常使用。 |
| 8GB - 64GB | 0.5倍 RAM | 现代系统常用配置,物理内存足以应对大多数任务。 |
| ≥ 64GB | 4GB - 8GB | 大内存服务器,仅用于记录崩溃日志(dump)或防止极端溢出。 |
需要休眠(Hibernate): 如果你使用笔记本电脑且需要“休眠”功能(将内存数据写入硬盘后关机),swap 大小必须至少等于物理内存大小(建议略大 10%-20%),否则休眠会失败。
桌面用户(日常办公、娱乐): 建议设置 4GB - 8GB。即使内存有 16GB 或 32GB,也建议保留少量 swap。Linux 系统会利用 swap 机制将不常用的后台程序数据移出内存,提升响应速度。
服务器(Web/数据库/应用):
特殊情况(内存溢出风险): 如果你经常运行内存消耗极大的任务(如视频渲染、大型科学计算),且内存不足,swap 应设置为 物理内存的 1倍 或 2倍,虽然速度会变慢,但能防止程序崩溃。
swappiness)。设置 swap 大小后,还需要关注系统使用 swap 的“积极性”。Linux 通过 swappiness 参数控制(范围 0-100,默认 60)。
cat /proc/sys/vm/swappinesssudo sysctl vm.swappiness=10/etc/sysctl.conf,添加 vm.swappiness=10。swappiness 设为 10。