启用 Swap
在开始之前,先检查系统是否已经启用了 Swap。
sudo swapon --show如果没有任何输出,说明当前没有启用 Swap。你也可以用
free -h查看内存使用情况。创建 Swap 文件
我们需要创建一个用于作为 Swap 的文件。这里以创建一个 2GB 的 Swap 文件为例(你可以根据需要将
2G改为1G或4G)。使用
fallocate命令快速创建文件:sudo fallocate -l 2G /swapfile注意: 如果你的文件系统不支持
fallocate(较为罕见),你会收到错误提示。此时可以使用以下dd命令替代:sudo dd if=/dev/zero of=/swapfile bs=1M count=2048设置权限
出于安全考虑,Swap 文件应该只能由 root 用户读写。
sudo chmod 600 /swapfile验证权限是否设置正确:
ls -lh /swapfile你应该看到类似
-rw-------的输出。将文件标记为 Swap
使用
mkswap命令将刚才创建的文件格式化为 Swap 空间:sudo mkswap /swapfile系统会提示类似
Setting up swapspace version 1, size = 2 GiB...的信息。启用 Swap 文件
现在,临时启用这个 Swap 文件:
sudo swapon /swapfile再次检查状态,你应该能看到它已经挂载了:
sudo swapon --show设置开机自动挂载(永久生效)
为了防止重启后失效,需要将配置写入
/etc/fstab文件。直接运行以下命令将配置追加到文件末尾:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab或者使用编辑器打开文件
/etc/fstab在末尾手动添加/swapfile none swap sw 0 0并保存。检查/优化 Swappiness
swappiness参数决定了系统使用 Swap 的积极程度(0-100)。 Debian 默认是60,这意味着系统会比较积极地使用 Swap。 对于服务器或桌面,通常建议将其调低,以优先使用物理内存。 但有部分云服务厂商可能会将该值设置为 0 !这也就是为什么你设置了 Swap 但没有发现系统因内存造成的卡顿情况有明显的改善!(设置为0意味着只有在物理内存完全耗尽的时候才使用 swap )查看当前值:
cat /proc/sys/vm/swappiness临时修改(立即生效)为 10(推荐值):
sudo sysctl vm.swappiness=10永久修改:编辑 sysctl 配置文件:
sudo nano /etc/sysctl.conf在文件末尾添加:
vm.swappiness=10保存退出即可。
删除 Swap
如果你以后不再需要它,可以按以下步骤安全删除:
- 关闭 Swap:
sudo swapoff -v /swapfile - 删除配置: 编辑
/etc/fstab删除添加的那一行。 - 删除文件:
sudo rm /swapfile