如何在CentOS 7上添加交换空间

linux

很多认为swap是物理RAM内存已满时才使用swap。 这是一个错误的认知,内核会将非活动页面将从内存移动到交换空间swap。如你需要了解更多关于这方面知识,请阅读我们的教程:Linux性能:为什么你应该添加交换空间swap。

Linux性能:为什么你应该添加交换空间swap | myfreax我们知道Linux内核使用交换空间而不是RAM内存的时候会严重降低性能。既然我有足够多的可用内存,删除交换空间不是更好吗?简短的回答是不会myfreaxmyfreax

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

本教程介绍如何在CentOS 7上添加swap交换空间文件。包括使用dd/fallocate命令创建交换空间文件,设置交换空间文件的权限,格式化交换空间文件,使用swapon启用交换空间,调整Swappiness值的大小,使用swapoff关闭删除交换空间。

开始之前

交换空间swap不应视为物理内存的替代。 由于交换空间是硬盘驱动器的一部分,因此它的访问速度比物理内存慢。 如果您的系统不断出现内存不足的情况,则应添加更多内存RAM。交换空间旨在改善系统的性能,并不会增加系统的总内存。我们在教程Linux性能:为什么你应该添加交换空间swap有详细的说明。

创建交换空间文件

在此示例中,我们将创建2 GB交换空间文件。 如果要添加更多交换空间,请将2G替换为你所需交换空间的大小。完成以下步骤,以在CentOS 7上添加交换空间。首先,使用fallocate创建一个swap交换的文件:

sudo fallocate -l 2G /swapfile

如果您的系统上没有fallocate命令,或者您收到一条错误消息,提示fallocate failed: Operation not supported操作不支持,请使用以下dd命令创建swap交换空间文件:

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

设置交换空间文件的权限

交换空间文件的权限只有root用户才能写入和读取交换文件的数据。因此我么要给交换文件的权限设置为600。要设置正确的权限,请执行以下命令:

sudo chmod 600 /swapfile

格式化交换空间文件

交换空间文件所使用的文件系统与普通文件不一样,因此它有自己的格式和专用个格式化工具。你将使用mkswap命令来格式化交换空间文件:

sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)

no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8

启用交换空间

当你格式化完成后,为了让系统识别交换空间文件,因此还需要手动启用交换空间文件。你将执行以下swapon命令启用交换空间文件:

sudo swapon /swapfile

swapon命令启用交换空间仅此次会话可用,重启后将不会自动挂载。为了让交换空间永久启用,并在开机启动时自动挂载。因此我们需要修改Linux的自动挂载/etc/fstab配置文件。

以下命令使用echo,tee命令以及管道追加行/swapfile swap swap defaults 0 0到将/etc/fstab文件文件:

echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab

当计算机在重启时,交换空间将会自动启用。

验证交换空间的状态

通过使用swaponfree命令验证交换空间是否处于活动状态,如下所示 :

sudo swapon --show

swapon命令输出如下所示:

NAME      TYPE      SIZE  USED PRIO

/swapfile file 2G 0B -1

sudo free -h

free命令输出如下所示:

              total        used        free      shared  buff/cache   available

Mem: 981Mi 97Mi 68Mi 0.0Ki 814Mi 735Mi

Swap: 2.0Gi 10Mi 1.9Gi

调整Swappiness值

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

如果你不能确定该值大小,请参考我们的教程:Linux性能:为什么你应该添加交换空间swap和空闲内存与可用内存的区别。Linux的初始默认设置为60, 你可以使用下面的cat命令查看当前值的大小:

cat /proc/sys/vm/swappiness
60

如果你需要对swappiness的值作出更改,请执行以下sysctl命令。sysctl命令的更改仅在当前会话中可用,即重启会恢复为默认值。为让swappiness的值持久化,则需要将值写入到/etc/sysctl.conf文件中。

echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/sysctl.conf

删除交换空间

如果你因某些原因需要关闭并且删除交换文件,则需要执行以下步骤。首先使用swapoff命令关闭交换空间。执行以下命令关闭交换空间:

sudo swapoff -v /swapfile

接着,使用你喜欢的编辑器打开文件/etc/fstab,并移除行/swapfile swap swap defaults 0 0。在本教程中,我们将使用vim命令打开文件:

sudo vim /etc/fstab

找到行/swapfile swap swap defaults 0 0并删除,最后保存并退出。最后的一步是删除交换空间文件。你将使用rm命令删除文件:

sudo rm /swapfile

结论

我们向您展示了如何在CentOS 7系统上创建交换文件以及激活和配置交换空间。如果您遇到问题或有反馈,请在下面发表评论。

以上是 如何在CentOS 7上添加交换空间 的全部内容, 来源链接: utcz.com/z/507267.html

回到顶部