Swap(交换内存)是硬盘上的一个空间,当物理内存耗尽,交换内存就会被使用。当一个 Linux 系统内存不足时,不活跃的内存页,将会被从 RAM 空间 移动到 Swap 内存交换空间。
Swap 空间可能以独立的内存交换分区或者一个 swap 文件形式存在。通常,在虚拟机上运行 CentOS,没有现成的内存交换分区,因此唯一的选择就是创建一个 swap 文件。
本文将会讲述给 CentOS 8 系统增加一个 swap 文件的几个步骤。
以 root 或者其他有 sudo 权限的用户身份执行下面的步骤,在 CentOS 8 系统上新增 swap 空间。
01.开始创建用于内存交换空间的文件:
sudo fallocate -l 1G /swapfile
在这个例子中,我们创建了一个 1G 大小的 swap 文件。如果你需要更多的内存交换空间,将1G
换成你想要的大小。
如果你的系统上fallocate
不可用,或者你得到错误提示:fallocate failed: Operation not supported
,使用dd
命令来创建 swap 文件。
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
02.设置文件权限以便只有 root 用户可以读写 swap 文件:
sudo chmod 600 /swapfile
03.下一步,在这个文件上设置 Linux swap:
sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=0abdb8ba-57d6-4435-8fd8-5db9fc705045
04.执行下面的命令激活 swap 空间:
sudo swapon /swapfile
05.通过使用swapon
或者free
命令来验证 swap 空间是否已经激活,像下面这样:
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
06.通过在/etc/fstab
文件中添加一条 swap 条目来持久化这些修改。
sudo nano /etc/fstab
将下面的内容粘贴进文件后面:
/swapfile swap swap defaults 0 0
Swappiness 是一个 Linux Kernel 属性值,它定义了系统使用 swap 空间的频率。Swappiness 取值范围从 0 到 100。一个较低的值使得 kernel 尽可能避免使用交换内存,而较高的值将使得 kernel 尽可能的使用交换内存空间。
在 CentOS 8 上 swappiness 默认值是 30。你可以通过输入下面的命令检测当前的 swappiness 值:
cat /proc/sys/vm/swappiness
30
当 swappiness 值为 30 的时候,它是适合桌面版本和开发版本的机器的,而对于生产服务器,你可能需要调低这个值。 例如,将 swappiness 值调低为 10,输入:
sudo sysctl vm.swappiness=10
想要持久化这个参数,应该将下面的内容粘贴到/etc/sysctl.conf
文件,并且重新启动:
vm.swappiness=10
最优的 swappiness 值依赖于你的系统工作量和你的内存是如何被使用的。你应该一点一点增加这个参数值,来寻找最优值。
想要取消激活并且移除 swap 文件,参考这些步骤:
01.通过输入下面命令,取消激活 swap 空间:
sudo swapoff -v /swapfile
02.从/etc/fstab
文件中移除 swap 条目/swapfile swap swap defaults 0 0
。
03.使用rm
删除实际的 swap 文件:
sudo rm /swapfile
我们已经给你演示了在 CentOS 8 上如何创建一个 swap 文件,并且激活和配置 swap 空间。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有