温馨提示×

为什么ubuntu要swap

小樊
35
2026-09-01 07:24:15
栏目: 智能运维

在 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+):

  • 默认用 /swapfile
  • 好处:
    • 不用提前分区
    • 大小好调整
    • 更适合笔记本和云服务器

3. 服务器场景也需要保护

即使是服务器:

  • 突发流量
  • 内存泄漏
  • 临时高峰

swap 能:

  • 避免直接 OOM
  • 给运维争取反应时间

三、是不是“有 swap 就慢”?

是的,但要看情况:

  • swap 在磁盘(HDD 更慢,SSD 稍好)
  • 频繁 swap ↔ 系统明显卡

但:

  • 偶尔 swap ≠ 慢
  • 没 swap + 内存爆 = 直接崩

所以原则是:

swap 是保命的,不是用来代替内存的


四、一般建议

内存 ≥ 8GB(桌面)

  • swap 可以小一点(比如 2–4GB)
  • 或只用于休眠

内存 ≤ 4GB

  • 建议 swap ≈ 内存大小或更大

服务器

  • 通常保留 swap(即使内存大)
  • 防止极端情况

如果你愿意,我可以:

  • 帮你看当前 Ubuntu 有没有 swap
  • 教你加 / 调大 swapfile
  • 或解释 swap 和 zRAM 的区别

你现在是桌面还是服务器?内存多大?

0