Swap交换空间是物理RAM内存已满时使用的磁盘空间。当Linux系统用完RAM时,非活动页面将从RAM移动到交换空间。

Swap交换空间可以采用专用交换分区或交换文件的形式。通常,在虚拟机上运行CentOS时,不存在交换分区,因此唯一的选择是创建交换文件。

本文介绍了在CentOS 8系统上添加交换文件的步骤。

创建和激活交换文件

以root用户或具有 sudo特权的用户身份执行以下步骤,以在CentOS 8系统上添加Swap交换空间。

首先创建一个将用作交换空间的文件:

sudo fallocate -l 1G /swapfile

在此示例中,我们将创建大小为的交换文件。 1G。如果需要更多交换,请用所需的大小替换1G

如果系统上没有fallocate实用程序,或者出现错误消息fallocate failed: Operation not supported,请使用dd命令创建交换文件:

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

设置文件权限,以便只有root用户才能读写Swap交换文件:

sudo chmod 600 /swapfile

接下来,在文件上设置Linux交换区:

sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=0abdb8ba-57d6-4435-8fd8-5db9fc705045

通过执行以下命令来激活交换:

sudo swapon /swapfile

验证交换是否处于活动状态通过使用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

通过在/etc/fstab文件中添加交换条目来使更改永久生效:

sudo nano /etc/fstab

粘贴以下行:  /etc/fstab

/swapfile swap swap defaults 0 0

调整Swappiness度值

Swappiness是Linux内核属性,它定义系统多久使用交换空间一次。 Swappiness的值可以在0到100之间。较低的值将使内核尽可能避免交换,而较高的值将使内核更积极地使用交换空间。

CentOS 8上的默认swappiness值为30。您可以通过键入以下命令来检查当前的swappiness值:

cat /proc/sys/vm/swappiness
30

虽然对于台式机和开发机,可交换性值为30可以,但对于生产服务器,则可能需要设置较低的值。

例如,要将交换性值设置为10,请键入:

sudo sysctl vm.swappiness=10

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

/etc/sysctl.conf

vm.swappiness=10

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

删除交换文件

要停用并删除交换文件,请按照以下步骤操作:

通过键入以下内容来停用交换空间:

sudo swapoff -v /swapfile

/etc/fstab文件中删除交换条目/swapfile swap swap defaults 0 0

使用 rm 删除Swap交换文件

sudo rm /swapfile

结论

我们向您展示了如何在CentOS 8系统上创建交换文件以及激活和配置交换空间。

如果您遇到问题或有反馈,请在下面发表评论。