swapfile 是什么、从哪来、什么时候生效?
这个问题问得非常好,而且你已经走到 Linux 分区设计的最后一个关键点了 👍
我用最直观的方式把 swapfile 是什么、从哪来、什么时候生效 全部讲清楚。
一句话先给你答案
swapfile = 放在磁盘上的一个“普通文件”,
Linux 把它当成“虚拟内存”来用。
它不是分区,而是你 装完系统后自己创建的一个文件。
一、没有 swapfile 会怎样?
Ubuntu 安装完成后,默认情况:
- 如果你 没有建 swap 分区
- 系统启动后:
swapon --show
👉 是空的(没有 swap)
但这不是问题,系统仍然能正常用。
二、swapfile 是“怎么来的”?🧠
👉 是你主动创建的,不是自动生成的
本质就是:
/swapfile ← 一个普通文件(但权限很严格)
Linux 内核把它当作 swap 分区使用。
三、为什么现在推荐 swapfile,而不是 swap 分区?
| 对比 | swap 分区 | swapfile |
|---|---|---|
| 灵活性 | ❌ 固定大小 | ✅ 随时改 |
| 删除 | ❌ 要改分区 | ✅ 直接删 |
| NVMe 性能 | 接近 | 接近 |
| 安装复杂度 | 高 | 低 |
| 是否推荐 | 旧方案 | ⭐ 现代推荐 |
👉 Ubuntu 官方现在也是推荐 swapfile
四、swapfile 什么时候创建?什么时候生效?
最佳时机:系统装完、第一次进桌面后
创建步骤(照抄即可)👇
# 1️⃣ 创建 16GB swapfile
sudo fallocate -l 16G /swapfile
# 2️⃣ 设置权限(必须)
sudo chmod 600 /swapfile
# 3️⃣ 格式化为 swap
sudo mkswap /swapfile
# 4️⃣ 启用 swap
sudo swapon /swapfile
验证:
swapon --show
free -h
你会看到 swap 已经生效。
五、开机自动启用 swapfile(重要)
sudo nano /etc/fstab
在最后加一行:
/swapfile none swap sw 0 0
保存退出。
六、swapfile 应该多大?
推荐规则(实用向):
| 内存 | swapfile |
|---|---|
| 8GB | 8–16GB |
| 16GB | 8–16GB |
| 32GB | 8GB |
| 64GB+ | 4–8GB |
📌 不休眠(hibernate)的话,不需要 = 内存大小
七、swapfile 会不会拖慢系统?🤔
正常情况:
- 内存够 → 几乎不用 swap
- 内存紧张 → swap 是“救命绳”
👉 有 swapfile:
- 系统不容易 OOM
- Docker / ROS / 编译更稳
👉 没 swap:
- 内存爆 → 程序直接被杀
八、你这个方案的完整逻辑(非常合理)✅
你现在的最终方案是:
| 挂载点 | 说明 |
|---|---|
/boot/efi |
UEFI 启动 |
/ |
系统 + 内核 |
/home |
所有数据 |
/swapfile |
虚拟内存 |
👉 这是 2024–2026 年主流 Linux 工程机方案
九、再用一句话帮你消除顾虑
swapfile 不是“系统必须有的东西”,
而是“当你需要时再加的安全垫”。
你完全可以:
- 装系统时不管它
- 用一阵子
- 发现内存压力大了
→ 10 秒创建一个 swapfile

浙公网安备 33010602011771号