安装完Ubuntu22.04和Linux Mint后发现它们的swap大小都只有2G,有点小了,于是决定调整以下swap分区大小,这里做一下记录。

查看当前的swap文件

1
swapon -s

Filename这一栏的下面就是swap文件的路径,例如我这里的是/swapfile

卸载swap文件

1
sudo swapoff -v /swapfile

这里/swapfile填写要关闭的swap文件。如果只有一个或者想要全部关闭,可以直接使用sudo swapoff -a,下面同理。

删除swap文件

1
sudo rm /swapfile

创建swap文件

1
sudo dd if=/dev/zero of=/swapfile bs=1G count=8

比如这里我创建的是8G的swap文件,要修改创建的swapfile大小,修改bs和count的值即可。

修改文件权限

出于安全考虑,swap文件应该只有root用户可读写。

1
sudo chmod 0600 /swapfile

配置swap文件

1
sudo mkswap /swapfile

启用swap

1
sudo swapon /swapfile

为了在重启后自动启用swap文件,还应该将其添加到/etc/fstab文件中。

1
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

查看和修改swappiness

Swappiness是一个系统参数,控制着内核将内存页从物理内存换出到swap的倾向性。

1
cat /proc/sys/vm/swappiness

临时修改,取值在0-100之间,ubuntu默认60。0意味着在内存没有满的情况下不使用swap分区。比如我这里将其设置30。

1
sudo sysctl vm.swappiness=30

永久修改参数需要编辑/etc/sysctl.conf文件。在其中编辑或者添加以下内容

1
vm.swappiness=30

并重新加载配置

1
sudo sysctl -p