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是变量,表示交换分区的标识,请您自定义设置,该变量值不能和已有分区标识相同。

  • bscount的值表示创建的交换文件的大小,您可以自定义设置,该命令中bs=1M count=1024表示设置交换文件的大小为1 GB。

2.执行以下命令,将文件格式化为swap分区。

sudo mkswap /var/swap

p931945-ZDvm.png

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