温馨提示×

ubuntu swap必要吗

小樊
39
2026-09-13 05:55:17
栏目: 智能运维

在 Ubuntu(以及 Linux generally)里,swap 不是绝对必要,但在大多数场景下建议保留。是否“必要”取决于你的使用场景、内存大小和系统用途。

下面分情况说清楚:


一、什么情况下「可以不要 swap」

如果你同时满足以下条件,可以不用 swap:

  • 物理内存 ≥ 8GB(16GB 更稳)
  • 只做日常使用(上网、办公、开发)
  • 不跑内存占用极大的程序(如大模型、虚拟机、编译大型项目)
  • 系统不会长时间高负载运行
  • 能接受“内存耗尽直接 OOM 杀进程”

⚠️ 注意:
没有 swap ≠ 更快,只是少了一个“兜底机制”。


二、什么情况下「强烈建议有 swap」

1️⃣ 内存较小(≤ 4GB / 8GB)

  • 很容易内存吃满
  • 没有 swap 会直接卡死或强杀进程

✅ 建议:swap = 内存的 1–2 倍(老规则)
现代更推荐:2–4GB 足够


2️⃣ 使用休眠(hibernate)

  • 休眠必须 swap ≥ 内存大小
  • 否则无法恢复
free -h
swapon --show

3️⃣ 服务器 / 生产环境

  • 防止突发内存峰值导致崩溃
  • OOM Killer 可能误杀重要服务

✅ 建议:

  • 物理机:2–8GB swap
  • 云服务器:至少 1–2GB

4️⃣ 跑 Docker / 虚拟机 / 编译

  • 编译内核、Android、Rust 大型项目
  • 内存短时暴涨

swap 能避免系统直接挂掉


三、swap 的“代价”是什么?

  • 速度慢:比内存慢很多(尤其是机械盘)
  • SSD 磨损:频繁 swap 会写 SSD(但现代 SSD 影响不大)
  • 一般不会明显拖慢系统,只要不频繁 swap

四、Ubuntu 20.04+ 的默认行为

  • 内存 ≤ 2GB:自动创建 swap file
  • 内存大:默认可能很小或无

如果你装系统时没看到 swap,不一定出事,但建议手动加一个


五、推荐做法(通用)

普通桌面用户

# 创建 4G swap
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

永久生效:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

服务器

  • 2–4GB swap file 足够
  • 不一定要分区

结论一句话

swap 不是“必须”,但是“保险”。
内存大可以小一点,内存小一定要有。

如果你愿意,可以告诉我:

  • 内存多大
  • 是桌面还是服务器
  • 主要用来干什么

我可以直接给你最合适的 swap 大小方案

0