交换空间是磁盘上的一个空间,当物理RAM内存量满时使用。当Linux系统耗尽RAM时,不活动的页面将从RAM移动到交换空间。
交换空间可以采用专用交换分区或交换文件的形式。通常,当在虚拟机上运行CentOS时,没有交换分区,所以我们需要创建一个交换文件并将其激活设为交换分区。
本文将介绍在CentOS 8系统上添加交换文件的步骤。
创建并激活交换文件
在CentOS 8系统上,以root用户或具有sudo权限的用户添加交换空间。
- 01、首先创建一个作为交换空间的文件:
fallocate -l 4G /swap
在本例中,我们创建了一个大小为4G的交换文件。如果需要更大的交换空间,将4G替换为所需大小。如果 fallocate 工具不可用,或者得到一个错误消息:fallocate failed: Operation not supported,可使用 dd 命令创建 swap 文件:
dd if=/dev/zero of=/swap bs=1024 count=4000000
- 02、设置文件权限,以仅允许root用户读写交换文件:
chmod 600 /swap
- 03、接下来,将此文件设置为Linux交换区:
mkswap /swap
- 04、激活交换分区:
swapon /swap
- 05、使用swapon或free命令检查swap是否激活
swapon --show # OR free -h
- 06、通过在/etc/fstab文件中添加一条交换条目,使更改永久生效(vim /etc/fstab)
/swap swap swap defaults 0 0
# sed -i -e '$aTEXTTOEND' filename sed -i -e '$a/swap swap swap defaults 0 0' /etc/fstab
- i: edit files in place
- e: add the script to the commands to be executed
- $: sed address location
- a: append command
- TEXTTOEND: text to append to end of file
调整Swappiness值
Swappiness是一个Linux内核属性,它定义了系统使用交换空间的频率。Swappiness的值可以在0到100之间。低值将使内核尽可能避免交换,而高值将使内核更积极地使用交换空间。
CentOS 8的默认swappiness值为30。输入以下命令可以检查当前的swappiness值:
cat /proc/sys/vm/swappiness
对于台式机和开发机器,swappiness值30是可以的,但是对于低配如内存只有2GB的服务器,可能需要设置一个较高的值。例如,要将swappiness值设置为60,输入:
sysctl vm.swappiness = 60
要使这个参数在重新启动系统后生效,请在/etc/sysctl.conf文件中追加以下行:
vm.swappiness = 60
# sed -i 's/old-word/new-word/g' *.txt sed -i 's/vm.swappiness = .*/vm.swappiness = 60/g' /etc/sysctl.conf
最佳swappiness值取决于系统工作负载和内存的使用方式。应该以较小的增量调整此参数以找到最佳值。
删除交换文件
要禁用和删除交换文件,请执行以下步骤:
- 01、通过输入以下命令来禁用交换空间:
swapoff -v /swap
- 02、删除/etc/fstab文件中的交换条目/swap swap swap defaults 0 0
- 03、删除交换文件swap
rm rf /swapfile
Done!
https://www.jianshu.com/p/35f7e0169a6f https://linuxize.com/post/how-to-add-swap-space-on-centos-8/How To Add Swap Space on CentOS 8https://www.jianshu.com/p/12e25ea172de https://www.cnblogs.com/iakud/p/3825870.html