生产环境搭建收藏本版 +发表新主题

Linux实例SWAP分区的配置

SWAP分区介绍
在Linux系统中的SWAP(交换分区),类似于Windows系统的虚拟内存。系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到SWAP,以提高系统可用内存。
注:如果您使用普通云盘,不建议使用SWAP分区。如果是高效云盘或SSD云盘,可以根据实际情况使用SWAP分区。

SWAP配置介绍
以root用户身份,通过远程连接登录Linux实例,执行以下命令,创建用于交换分区的文件。
  1. dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block
注:block_size、number_of_block大小可以自定义,比如bs=1024 count=4096000代表设置4G大小SWAP分区。指令如下
  1. dd if=/dev/zero of=/mnt/swap bs=1024 count=4096000

执行以下命令,设置交换分区文件。
  1. mkswap /mnt/swap
  1. swapon /mnt/swap
注:如果在/etc/rc.local中有swapoff -a需要修改为swapon -a。

设置开机时自启用SWAP分区,需要修改文件/etc/fstab中的SWAP行,添加以下代码。
/mnt/swap swap swap defaults 0 0
  1. echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab

注:/mnt/swap路径可以修改,可以根据创建的SWAP分区文件具体路径来配置。

执行以下命令,临时修改swappiness参数值,此处以空闲内存少于10%时才使用SWAP分区为例。
  1. echo 10 >/proc/sys/vm/swappiness
提示:在Linux系统中,可以通过查看/proc/sys/vm/swappiness内容的值来确定系统对SWAP分区的使用原则。当 swappiness内容的值为0时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用SWAP分区。当swappiness内容的值为100时,表示积极地使用SWAP分区,并且把内存中的数据及时地置换到SWAP分区。查看修改前为0,需要在物理内存使用完毕后才会使用SWAP分区。

若需要永久修改此配置,在系统重启之后也生效的话,通过vim命令编辑/etc/sysctl.conf文件,并增加以下内容。
  1. vm.swappiness = 10


执行以下命令,验证添加成功。
  1. sysctl -p


关闭SWAP分区
当系统出现内存不足时,开启SWAP可能会因频繁换页操作,导致IO性能下降,可以采用以下方法,关闭SWAP分区。
执行以下命令,查询SWAP分区设置。
  1. free -m


系统显示类似如下。

执行以下命令,关闭SWAP分区。
  1. swapoff [$SWAP_File]


注:[$SWAP_File]SWAP分区标识。
系统显示类似如下。

通过vim命令,修改/etc/fstab文件,删除或注释相关配置,取消SWAP的自动挂载,系统显示类似如下。

执行以下命令,确认SWAP分区已经关闭。
  1. free -m


系统显示类似如下。

执行以下命令,临时修改swappiness参数值。此处以空闲内存为0%为例。
  1. echo 0 >/proc/sys/vm/swappiness   


若需要永久修改此配置,在系统重启之后也生效的话,通过vim命令编辑/etc/sysctl.conf文件,
  1. vi /etc/sysctl.conf


并增加以下内容。
  1. vm.swappiness = 0


执行以下命令,验证添加成功。
  1. sysctl -p

扫描二维码,手机查看
声明:本文来源于互联网,观点仅代表作者本人,不代表欢乐你我,真实性请妥善甄别。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则