• 阿里云云主机swap功能设置实战案例


    阿里云云主机swap功能设置实战案例

    阿里云提供的云服务器(Elastic Compute Service,简称 ECS),是云主机的一种,当前采用的虚拟化驱动是Xen(这一点可以通过bios vendor和virtual type可以看出)。
    默认情况下,阿里云云主机的swap功能是没有启用的,原因当然是通过取消swap功能可以降低磁盘IO的占用率来让用户购买更多的内存、提高磁盘寿命和性能。
    交换空间通常是一个磁盘分区(此分区在安装操作系统时,系统通常会默认划分出一段空间用于交换分区,默认将交换空间的大小设定为内存的1倍到2倍),也可以是一个文件。

    阿里当前的做法是:
    1.不创建swap分区,由镜像决定

    2.将vm.swappiness设定为0,即永不使用swap分区

    启用swap分区,确实可以降低内存的使用压力,但并不是长久之计,如果云主机上运行的应用确实需要较高的内存,建议还是购买更多的内存。

    如何启用swap分区?
    步骤如下:
    1.查看当前系统中是否已经启用swap分区(有三种命令)
    # top
    # free -m
    # cat /proc/swaps
    Filename Type Size Used Priority

    2.如果没有启用swap分区功能,则新建一个专门的文件用于swap分区,创建时间比较长需要耐心等待。
    不能使用/data/swap,会报错
    # dd if=/dev/zero of=/data/swap bs=1G count=4
    dd: opening `/data/swap': No such file or directory

    # dd if=/dev/zero of=/mnt/swap bs=1G count=4
    注:此文件的大小是count的大小乘以bs大小,上面命令的大小是4GB
    [root@iZwz96l7gxttha3j1hk494Z ~]# dd if=/dev/zero of=/mnt/swap bs=1G count=4
    4+0 records in
    4+0 records out
    4294967296 bytes (4.3 GB) copied, 71.8305 s, 59.8 MB/s

    3.设置交换分区文件:通过mkswap命令将上面新建出的文件做成swap分区
    # mkswap /mnt/swap

    4.修改内核参数vm.swappiness
    查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成30或者60
    在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。
    当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。
    当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。
    查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区
    # cat /proc/sys/vm/swappiness
    0
    # sysctl -a | grep swappiness
    vm.swappiness = 0
    # sysctl -w vm.swappiness=30
    vm.swappiness = 30
    注:若想永久修改,则编辑/etc/sysctl.conf文件
    # vim /etc/sysctl.conf
    vm.swappiness=30
    # sysctl -p

    5.启用此交换分区的交换功能
    #swapon /mnt/swap
    注:如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a
    # cat /etc/rc.local 查看是否存在

    6.设置开机时自启用 SWAP 分区:
    需要修改文件 /etc/fstab 中的 SWAP 行,添加
    /mnt/swap swap swap defaults 0 0
    # echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab

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

    7.再次用命令查看是否设置成功
    # cat /proc/swaps
    Filename Type Size Used Priority
    /mnt/swap file 4194300 0 -1
    # free -m
    total used free shared buffers cached
    Mem: 3832 2711 1120 0 124 1826
    -/+ buffers/cache: 760 3072
    Swap: 4095 0 4095

    --------------------

    如何关闭swap分区?
    当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。如果要关闭 SWAP,可以采用如下方法。
    使用命令 swapoff 关闭 SWAP
    swapoff /mnt/swap
    修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载:
    swapoff -a >/dev/null
    通过 free -m 确认 SWAP 已经关闭。

    swappiness 参数调整:
    可以使用下述方法临时修改此参数,这里配置为 0%:
    echo 0 >/proc/sys/vm/swappiness
    若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:
    # vim /etc/sysctl.conf
    vm.swappiness=0
    # sysctl -p

    ------------------------------

     

    本人微信公众帐号: 心禅道(xinchandao)

    本人微信公众帐号:双色球预测合买(ssqyuce)

  • 相关阅读:
    Django之url路由
    Django之setting文件
    Diango之通过form表单向服务端发送数据
    Django之win7下安装与命令行工具
    Linux学习之查看系统资源命令总结(二十二)
    实现简单的web框架
    Linux下发送邮件
    Linux学习之日志管理(二十一)
    Shell学习之结合正则表达式与通配符的使用(五)
    Linux学习之后台任务与定时任务(二十)
  • 原文地址:https://www.cnblogs.com/zdz8207/p/linux-aliyun-centos-swap.html
Copyright © 2020-2023  润新知