开发者社区> 问答> 正文

云服务器 ECS Linux SWAP 配置概要说明

云服务器 ECS Linux SWAP 配置概要说明

展开
收起
开发者说 2019-07-31 19:00:23 944 0
1 条回答
写回答
取消 提交回答
  • SWAP 简介

    Linux 中的 SWAP(交换分区),类似于 Windows 的虚拟内存。系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到 SWAP,以提高系统可用内存。

    注:参阅 ECS 使用须知,云服务器 ECS 如果您使用普通云盘,不建议使用swap分区。如果是高效云盘或SSD云盘,可以根据实际情况使用swap分区。

    SWAP 配置介绍及 FAQ

    开启 SWAP

    1. 创建用于交换分区的文件:
    dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block
    

    注:block_size、number_of_block 大小可以自定义,比如 bs=1M count=1024 代表设置 1G 大小 SWAP 分区。

    1. 设置交换分区文件:
    mkswap /mnt/swap
    
    

    image.png

    1. 立即启用交换分区文件
    swapon /mnt/swap
    
    

    image.png

    注:如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a

    image.png

    1. 设置开机时自启用 SWAP 分区:

    需要修改文件 /etc/fstab 中的 SWAP 行,添加

    /mnt/swap swap swap defaults 0 0
    
    

    image.png

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

    1. 修改 swpapiness 参数

    在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。

    查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区:

    image.png

    可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 10% 时才使用 SWAP 分区:

    echo 10 >/proc/sys/vm/swappiness
    
    

    image.png

    若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:

    # vim /etc/sysctl.conf
    vm.swappiness=10
    # sysctl -p
    
    

    关闭 SWAP

    当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。如果要关闭 SWAP,可以采用如下方法。

    1. free -m 查询 SWAP 分区设置:

    image.png

    1. 使用命令 swapoff 关闭 SWAP,比如:

    swapoff /mnt/swap

    image.png

    1. 修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载:

    image.png

    1. 通过 free -m 确认 SWAP 已经关闭。

    image.png

    1. swappiness 参数调整:

    可以使用下述方法临时修改此参数,这里配置为 0%:

    echo 0 >/proc/sys/vm/swappiness
    

    若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:

    # vim /etc/sysctl.conf
    vm.swappiness=0
    # sysctl -p
    
    

    Centos 使用 mkswap 格式化文件时报错的处理方法

    问题现象

    使用 mkswap 创建 SWAP 时出现类似如下报错信息:

    mkswap: error: swap area needs to be at least 40 KiB
    
    

    image.png

    问题原因

    指定的 SWAP 文件太小,SWAP 文件至少应该大于 40KB。

    解决方法

    重新生成更大的文件格式化为 SWAP 即可。

    2019-08-01 15:23:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载