简介:swap交换空间其实是一个磁盘分区,在安装操做系统时,默认划分出物理内存的1~2倍空间用于交换分区,它相似于 Windows 的虚拟内存。系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到 SWAP,以提升系统可用内存。vim
阿里云ECS服务器的swap功能默认时没有开启的,由于swap功能会增长磁盘IO的占用率,下降磁盘寿命和性能,另外一方面也能够借此让用户购买更大的内存。启用swap分区,必定程度上能够下降物理内存的使用压力,但若是云服务器上运行的应用确实须要更多的内存,仍是须要购买物理内存。服务器
启用swap分区步骤以下:app
一、查看是否启用swap分区
# free -m
# cat /proc/swaps性能
二、若是未启用swap分区功能,则新建一个专门的文件用于swap分区阿里云
# dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_blockspa
注:block_size、number_of_block 大小能够自定义,好比 bs=1M count=1024 表明设置 1G 大小 SWAP 分区操作系统
三、设置交换分区文件内存
经过mkswap命令将上面新建出的文件作成swap分区ast
# mkswap /mnt/swap配置
注:mkswap时若是出现以下错误,是由于SWAP 文件过小,SWAP 文件至少应该大于 40KB,从新执行上一步骤生成更大的文件便可
mkswap: error: swap area needs to be at least 40 KiB
四、修改内核参数 /proc/sys/vm/swappiness
当 swappiness为 0 时,表示最大限度的使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区;
当 swappiness 为 100 时,表示积极地使用 SWAP 分区,而且把内存中的数据及时地置换到 SWAP 分区。
根据实际须要设置该值便可,以下述方法临时修改此参数,假设咱们配置为空闲内存少于 30% 时才使用 SWAP 分区
# echo 30 >/proc/sys/vm/swappiness
若须要永久修改此配置,在系统重启以后也生效,可修改 /etc/sysctl.conf 文件,增长如下内容
# vim /etc/sysctl.conf
vm.swappiness=30
# sysctl -p
五、启用此交换分区的交换功能
#swapon /mnt/swap
注:若是在 /etc/rc.local 中有 swapoff -a 须要修改成 swapon -a
六、设置开机时自启用 SWAP 分区
修改文件 /etc/fstab 中的 SWAP 行,添加一行/mnt/swap swap swap defaults 0 0
# echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab
七、检查是否设置成功
# cat /proc/swaps
# free -m
八、关闭swap分区
当系统出现内存不足时,开启 SWAP 可能会因频繁换页操做,致使 IO 性能降低。若是要关闭 SWAP,能够采用以下方法。
使用命令 swapoff 关闭 SWAP
修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载#swapoff /mnt/swap
#swapoff -a >/dev/null