如何创建Linux的swap交换分区文件

Summer的小屋 2019-07-01

Swap简介

Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

如何创建Swap文件

1. 创建一个用于交换的文件

sudo fallocate -l 1G /swapfile

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

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

2. 设置正确的权限

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

sudo chmod 600 /swapfile

3. 设置Linux交换区

使用该 mkswap 实用程序将文件设置为Linux交换区域:

sudo mkswap /swapfile

4. 启用交换

使用以下命令激活交换文件:

sudo swapon /swapfile

要使更改永久打开/etc/fstab文件并附加以下行:

/swapfile swap swap defaults 0 0

5. 验证交换状态

要验证交换是否处于活动状态,我们可以使用swaponfree命令,如下所示:

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值为60.您可以通过键入以下命令来检查当前的swappiness值:

cat /proc/sys/vm/swappiness

输出

60

虽然桌面可以使用60的swappiness值,但对于生产服务器,您可能需要设置较低的值。
例如,要将swappiness值设置为10,请键入:

sudo sysctl vm.swappiness=10

要使此参数在重新引导后保持不变,请将以下行附加到该/etc/sysctl.conf文件:

vm.swappiness=10

最佳swappiness值取决于您的系统工作负载以及内存的使用方式。您应该以小增量调整此参数以查找最佳值。

如何删除交换文件

如果出于任何原因要停用并删除交换文件,请按照下列步骤操作:

1. 首先,使用以下命令停用交换:

sudo swapoff -v /swapfile

2. 删除交换文件条目/swapfile swap swap defaults 0 0/etc/fstab文件。

3. 最后删除实际的swapfile文件:

sudo rm /swapfile

翻译来源

Linuxize

相关推荐