# Debian / Ubuntu 手动添加 Swap 分区

# 准备工作

首先检查系统是否已经有 Swap 分区;如果系统没有 Swap 分区,则手动进行添加;否则,手动进行调整即可。

使用如下命令:

swapon -s
1

或者使用:

free -hm
1

如果没有返回结果或者 free -hmSwap 一列数值是 0,则表示你的系统没有 Swap 分区。

提示

以下操作,请切换到 root 用户进行。

# 创建 Swap 分区

我们可以使用 fallocate 命令创建一个 1GB 大小的 Swap 分区:

fallocate -l 1G /swapfile
1

如果这个命令无法使用,请安装 util-linux 包:

apt install util-linux
1

然后设置这个文件的权限:

chmod 600 /swapfile
1

然后激活 SWAP 分区

mkswap /swapfile
swapon /swapfile
1
2

此时,你可以使用 swapon -sfree -hm 命令查看 Swap 分区是否已经激活。

# 设置开机自启

经过上述的设置,Swap 已经启动;但是重启系统后,会失效;可以对其设置开机自启,自动进行启用。

编辑 /etc/fstab 这个文件,可以键入如下内容:

echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
1

至此,Swap 分区应该已经启用;可以使用 free -hm 命令查看 Swap 分区是否正确。

# 调整系统内核 Swappiness 值

Swapiness 是 Linux 内核的一个属性,定义了系统使用交换空间的频率,Swapiness 的值在 0 到 100 之间(默认是 60),一个低的值会使内核尽可能地避免交换,而一个高的值会使内核更积极地使用交换空间。

这个值默认是 60,我们可以使用 cat /proc/sys/vm/swappiness 命令查看当前值。

一般我们可以给它改成 10

echo "vm.swappiness=10" >> /etc/sysctl.conf
1

然后使用 sysctl -p 命令使其生效。

# 关闭 Swap

有时候我们需要关闭 Swap 分区,可以使用下面的命令:

首先,停用 Swap 分区:

swapoff -v /swapfile
1

然后检查 /etc/fstab,删除 /swapfile swap swap defaults 0 0 这一行。

最后删除 /swapfile 这个文件:

rm /swapfile
1

# 参考信息

  1. Debian / Ubuntu 手工添加 Swap 分区 (opens new window)