Linux如何创建交换文件

时间:2019-11-20 08:53:46  来源:igfitidea点击:

在Ubuntu 20.04 LTS或CentOS Linux 7/8上,如何添加交换空间?
如何为Linux服务器创建交换文件?

创建Linux交换文件的步骤

显示当前在Linux上的交换空间和内存使用情况:

$ free -h
$ swapon --summary

使用dd命令创建一个用于交换空间的新文件

$ sudo dd if=/dev/zero of=/swap-file count=2 bs=1GiB

使用chmod命令和chown命令设置权限

$ sudo chmod -v 0600 /swap-file
$ sudo chown -v root:root /swap-file
# List permissions #
$ ls -l /swap-file

将文件设置为Linux交换空间

$ sudo mkswap /swap-file

激活交换空间

$ sudo swapon /swap-file

设置永久交换空间

编辑/etc/fstab文件:

$ sudo vi /etc/fstab

添加下面内容:

/swap-file swap swap defaults 0 0

在Linux上查看内容和交换使用情况

执行下面的命令之一:

$ swapon --summary
$ free -h
$ top
$ htop
$ vmstat

如何设置交换空间和交换文件的优先级

缺省情况下,Linux内核首先使用第一个激活的交换空间,直到其满为止。
然后内核开始使用第二个交换空间,依此类推。
不过,Linux允许我们定义优先级,Linux可以首先使用最高优先级。默认优先级为-2。

编辑/etc/fstab,设置权限,如下所示:

/dev/sdb none swap sw  0 0
/swap-file swap swap pri=5 0 0
/swap-file-2 swap swap pri=10 0 0

这样,将优先使用/swap-file-2。

交换阈值swappiness

swappiness值在/proc/sys/vm/swappiness文件中定义。
它控制Linux内核何时交换内存页面。
缺省值为60。

使用cat命令查看swappiness值:

$ cat /proc/sys/vm/swappiness

可以使用下面命令将其更改为30:

$ sudo echo "vm.swappiness=30" | sudo tee -a /etc/sysctl.d/99-swappiness.conf

Linux如何删除交换空间

删除您的交换文件的步骤:

禁用交换文件:

$ sudo swapoff -v /swap-file

使用rm命令删除物理交换文件:

$ sudo rm -v -i /swap-file

编辑/etc/fstab并删除交换文件的行。例如:

/swap-file swap swap defaults 0 0