swap分区的作用
在Linux系统中,如果系统需要更多的内存资源并且物理内存已满时,将使用swap分区(交换空间)。使用交换空间为不活跃的进程和数据提供临时存储,并防止物理内存满时内存不足。交换空间充当物理内存的扩展,并允许系统在物理内存耗尽时继续平稳运行。
开启swap分区可能会导致内存I/O性能下降。当ECS实例内存不足时,建议优先增加实例的物理内存。
如果您使用的是普通云盘,不建议使用swap分区,因为其I/O性能较低,会导致性能下降和I/O瓶颈。其他类型云盘可以根据实际情况使用swap分区,但应合理配置以避免频繁的swap分区操作,确保系统性能和稳定性。
查看swap分区
swapon --show
返回上述类似信息说明已经开启swap了,如果什么都没有返回那么就还没有开启swap。
配置swap分区
1.执行以下命令,创建用于交换的文件。
sudo dd if=/dev/zero of=/var/swap bs=1M count=1024
of
的值/var/swap
是变量,表示交换分区的标识,请您自定义设置,该变量值不能和已有分区标识相同。bs
和count
的值表示创建的交换文件的大小,您可以自定义设置,该命令中bs=1M count=1024
表示设置交换文件的大小为1 GB。
2.执行以下命令,将文件格式化为swap分区。
sudo mkswap /var/swap
3.执行以下命令,开启swap分区
sudo chmod 600 /var/swap
sudo swapon /var/swap
4.执行以下命令,检查swap是否已开启
swapon --show
说明分区已经成功开启。
5.写入新分区信息,配置开机自动挂载swap
echo '/var/swap none swap defaults 0 0' | sudo tee -a /etc/fstab
6.查询新的分区信息
cat /etc/fstab
7.重启ECS实例,检查swap分区是否自动启用
swapon --show
修改swappiness参数
在Linux系统中,可以通过设置swappiness
参数来确定系统对swap分区的使用原则,swappiness
参数取值范围为0到100。
swappiness
值越低,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用swap分区。swappiness
值越高,表示积极地使用swap分区,并且把内存中的数据及时地置换到swap分区。
vi /etc/sysctl.conf
# 使配置生效
sudo sysctl -p
# 验证swappiness参数配置是否生效
cat /proc/sys/vm/swappiness
修改vm.swappiness=10
表示物理内存少于10%时才使用swap分区 。
关闭swap分区
# 关闭swap分区,/var/swap请替换为自己的分区信息
sudo swapoff /var/swap
# 删除swap挂载信息, 类似 /var/swap none swap defaults 0 0
vi etc/fstab
# 保存退出
# 检查分区信息
swapon --show