Debian 系推荐使用swap文件当作交换分区,无需像以往一样需要单独在磁盘上创建一个swap分区。
所以本文将使用swap文件来当作交换分区,步骤如下:
检查系统是否已经有 Swap 分区:
lsw@rangotec.com:~$ swapon -s
Filename Type Size Used Priority
/swapfile file 8388604 0 -2
如上,则说明已经有交换分区了,或者:
lsw@rangotec.com:~$ free -h
total used free shared buff/cache available
Mem: 15Gi 5.9Gi 7.1Gi 275Mi 3.1Gi 9.6Gi
Swap: 8.0Gi 0B 8.0Gi
返回结果包含swap行,说明系统中已经有交换分区了
如果检查上述结果没有swap交换分区,则可以通过以下方法创建、挂载:
1. 创建 SWAP 分区
使用 fallocate 命令创建一个 8GB 大小的 Swap 分区:
# fallocate -l 8G /swapfile
如果fallocate命令无法使用,请安装 util-linux 包:
# apt install util-linux
# chmod 600 /swapfile
3. 激活 SWAP 分区
# mkswap /swapfile
# swapon /swapfile
此时,可以使用 swapon -s 或 free -m 命令查看 Swap 分区是否已经激活。
设置开机自启:
编辑 /etc/fstab 文件,加入下面的内容即可:
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
使用文章开头的方法验证交换分区状态。
调整系统内核 Swappiness 值:
Swapiness 是 Linux 内核的一个属性,定义了系统使用交换空间的频率,Swapiness 的值在 0 到 100 之间(默认是 60),一个低的值会使内核尽可能地避免交换,而一个高的值会使内核更积极地使用交换空间。
默认是 60,可以用 cat /proc/sys/vm/swappiness 命令查看当前值。
比如把他改成 10,可以通过下面命令:
# echo "vm.swappiness=10" >> /etc/sysctl.conf
然后使用 sysctl -p 命令使其生效。
关闭/删除 Swap:
首先,停用 Swap 分区:
# swapoff -v /swapfile
删除 /etc/fstab文件里的交换分区行。
/swapfile swap swap defaults 0 0
最后删除 /swapfile 个文件
# rm /swapfile