在 Ubuntu(以及大多数 Linux 系统)里,**swap(交换空间)**本质上就是“内存的备用仓库”。简单说:当物理内存(RAM)不够用时,系统把一部分不常用的数据先放到磁盘上的 swap 里,腾出内存给更紧急的任务用。
下面从“为什么需要”和“Ubuntu 为什么特别重视”两个角度说。
一、为什么需要 swap
1. 内存不够时的“安全网”
如果:
- 你开很多程序
- 编译大项目
- 跑数据库 / 虚拟机
- 内存突然被吃光
没有 swap 的情况:
- 系统可能直接 OOM(Out Of Memory)
- 内核会强制杀进程(可能是桌面、浏览器,甚至关键服务)
有 swap 的情况:
- 不常用的内存页被挪到磁盘
- 系统不会立刻崩
- 给你时间关程序或排查问题
2. 休眠(Hibernate)必须依赖 swap
如果你想用 休眠(不是睡眠):
- 内存内容要完整写入磁盘
- 所以 swap ≥ 内存大小
睡眠(Suspend)不需要 swap
休眠(Hibernate)必须 swap
3. 提高内存使用效率
Linux 会:
- 把“很久没用”的内存页放进 swap
- 把“真正活跃”的数据留在 RAM
这样 RAM 更专注于“正在用的事”
4. 小内存机器的救命稻草
在:
- 老电脑
- 2GB / 4GB 内存的机器
- 树莓派 / 云服务器
swap 能明显提升“不至于卡死”的概率
二、Ubuntu 为什么尤其强调 swap
1. 桌面用户多,体验优先
Ubuntu 面向:
如果没 swap,一旦内存爆了:
所以 Ubuntu 默认:
- 安装时自动建 swap(文件或分区)
- 降低“系统突然挂掉”的概率
2. 现代 Ubuntu 默认用 swapfile
老版本:swap 分区
新版本(17.04+):
3. 服务器场景也需要保护
即使是服务器:
swap 能:
三、是不是“有 swap 就慢”?
是的,但要看情况:
- swap 在磁盘(HDD 更慢,SSD 稍好)
- 频繁 swap ↔ 系统明显卡
但:
- 偶尔 swap ≠ 慢
- 没 swap + 内存爆 = 直接崩
所以原则是:
swap 是保命的,不是用来代替内存的
四、一般建议
内存 ≥ 8GB(桌面)
- swap 可以小一点(比如 2–4GB)
- 或只用于休眠
内存 ≤ 4GB
服务器
如果你愿意,我可以:
- 帮你看当前 Ubuntu 有没有 swap
- 教你加 / 调大 swapfile
- 或解释 swap 和 zRAM 的区别
你现在是桌面还是服务器?内存多大?