swap简称交换空间,它占用的是磁盘的空间,当物理RAM内存不满足使用时。非活动页面会从RAM移动到交换空间。

交换空间可以采用专用交换分区或交换文件的形式。在大多数情况下,当在虚拟机上运行Linux时,交换分区不存在,因此我们唯一的选择是创建交换文件。

怎么样创建交换文件

跟着一下步骤创建1GB大小的交换空间,如果你想创建更大或者更小的可以更改数字的大小

创建交换一个未格式化的文件

sudo fallocate -l 1G /swapfile

如果未安装faillocate你会收到一个错误消息fallocate failed: Operation not supported,则可以使用以下命令创建交换文件

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

设置正确的权限

只有root用户才能写入和读取交换文件。要设置正确的权限类型

sudo chmod 600 /swapfile

格式化交换文件

使用 mkswap 命令来格式化交换文件

sudo mkswap /swapfile

开启交换空间

启用交互文件使用swapon

sudo swapon /swapfile

让交换文件永久启用,并且跟随开机启动,将以下行写入/etc/fstab文件

/swapfile swap swap defaults 0 0

验证交换文件的状态

验证交换文件是否启用可以使用swapon或者free,如下所示

sudo swapon --show
NAME      TYPE  SIZE   USED PRIO
/swapfile file 1024M 507.4M   -1
sudo free -h
              total        used        free      shared  buff/cache   available
Mem:           488M        158M         83M        2.3M        246M        217M
Swap:          1.0G        506M        517M

怎么调整Swappiness值的大小

Swappiness是一个Linux内核属性,用于定义系统使用交换空间的频率。 Swappiness可以是0到100之间的值。swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swappiness=100的时候表示积极的使用swap空间

linux的基本默认设置为60, 你可以使用下面的命令查看当前值的大小

cat /proc/sys/vm/swappiness
60

对于桌面电脑swappiness的值为60计较好,但对于服务器建议调到较低的值

下面的命令将swappiness的值设置为10

sudo sysctl vm.swappiness=10

让变更swappiness的值持久化,则需要将值写入到 /etc/sysctl.conf 文件中

vm.swappiness=10

怎么移除交换空间swap

如果你因某些原因需要关闭并且移除交换文件,则需要执行以下步骤

首先关闭交换空间

sudo swapoff -v /swapfile

接着,从 /etc/fstab 文件中移除 /swapfile swap swap defaults 0 0  这行

最后删除文件

sudo rm /swapfile

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持