💾 Linux 启用 Swap:完整指南(Swap 文件 + Swap 分区)
适用于 Arch Linux、Debian、Ubuntu 等大多数发行版,支持手动配置 Swap 文件和 Swap 分区两种方式
📁 使用 Swap 文件(推荐)
适用于没有单独 Swap 分区的系统,或需要灵活管理 Swap 大小的情况
创建 Swap 文件(以 2G 为例)
sudo fallocate -l 2G /swapfile |
如果
fallocate
不可用使用:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress |
bs=1M 每次写入 1MB 的数据块
count=2048 写入 2048 个数据块(即 2048 MB = 2GB)
设置权限
sudo chmod 600 /swapfile |
格式化为 Swap
sudo mkswap /swapfile |
启用 Swap
sudo swapon /swapfile |
验证是否启用成功
swapon --show |
设置开机自动启用
编辑 /etc/fstab
文件:
sudo vim /etc/fstab |
添加以下内容到文件末尾:
/swapfile none swap sw 0 0 |
💽 使用 Swap 分区
如果你已经有一个空闲的分区(例如 /dev/sdXx),可以直接配置;否则请使用 gparted
或 cfdisk
parted
创建一个空分区
格式化为 Swap 分区(假设分区为 /dev/sdXx
)
sudo mkswap /dev/sdXx |
启用 Swap 分区
sudo swapon /dev/sdXx |
验证是否启用成功
swapon --show |
设置开机自动挂载
编辑 /etc/fstab
:
方法一:使用设备路径
/dev/sdXx none swap sw 0 0 |
方法二:使用 UUID(推荐)
查找 UUID:
sudo blkid /dev/sdXx |
示例:
UUID=abcd-1234 none swap sw 0 0 |
将其添加到 /etc/fstab
文件末尾
⚙️ 可选:设置 swappiness(内核使用 swap 的倾向)
临时设置(重启失效)
vm.swappiness
是 Linux 内核参数中的一个设置,用于控制系统使用 Swap(交换空间)的倾向性,它的值可以是 0 到 200 之间(在Linux内核版本低于5.8时最大值为100),默认值为60
sudo sysctl vm.swappiness=10 |
永久设置(推荐)
编辑配置文件:
sudo vim /etc/sysctl.d/99-sysctl.conf |
添加:
vm.swappiness=10 |
🧹 删除 Swap(文件或分区)
删除 Swap 文件
sudo swapoff /swapfile |
删除 Swap 分区
sudo swapoff /dev/sdXx |
🔍 Swap文件 对比 Swap分区
项目 | Swap 文件 | Swap 分区 |
---|---|---|
灵活性 | ✅ 可调整大小 | ❌ 大小固定 |
配置难易 | ✅ 简单,无需分区 | ⚠️ 需要分区工具 |
性能差异 | 🟡 相差不大 | 🟡 稳定性略好 |
使用场景 | 桌面、虚拟机、小型系统等 | 服务器、嵌入式、长运行环境 |