阿里云云主机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)

阿里云云主机swap功能设置实战案例的更多相关文章

  1. 阿里云云主机添加swap分区与swap性能优化

    1.swap的功能与相应内核参数 Linux 将物理内存分为内存段的部分被称作“页面”.交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放用于页面的内存.物理内存和交换空间 ...

  2. 阿里云主机如何设置swap

    简介:swap交换空间实际上是一个磁盘分区,在安装操作系统时,默认划分出物理内存的1~2倍空间用于交换分区,它类似于 Windows 的虚拟内存.系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内 ...

  3. php 网站301重定向设置代码实战案例

    php 网站301重定向设置代码实战案例 301重定向就是页面永久性移走的意思,搜索引擎知道这个页面是301重定向的话,就会把旧的地址替换成重定向之后的地址. 302重定向就是页面暂时性转移,搜索引擎 ...

  4. 【Vue.js实战案例】- Vue.js递归组件实现组织架构树和选人功能

    大家好!先上图看看本次案例的整体效果. 浪奔,浪流,万里涛涛江水永不休.如果在jq时代来实这个功能简直有些噩梦了,但是自从前端思想发展到现在的以MVVM为主流的大背景下,来实现一个这样繁杂的功能简直不 ...

  5. 阿里云主机CentOS7设置远程连接MySQL数据库

    有一个困扰了我好久的问题,今天终于解决了. 看网上的答案只有一部分.今天把完整的发篇博客纪念一下下. 首先,连接阿里云主机并登录数据库, 1.添加一个Host mysql>select User ...

  6. 企业Shell面试题及企业运维实战案例(三)

    1.企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: ...

  7. Flume实战案例运维篇

    Flume实战案例运维篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Flume概述 1>.什么是Flume Flume是一个分布式.可靠.高可用的海量日志聚合系统,支 ...

  8. zabbix proxy配置实战案例

    zabbix proxy配置实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix proxy概述 上一篇博客我们分享了zabbix agent有两种工作模式,即 ...

  9. Ubuntu系统部署tomcat并启用JMX实战案例

    Ubuntu系统部署tomcat并启用JMX实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装JDK环境 1>.更换阿里云的软件源 [root@zabbix_g ...

随机推荐

  1. python的接口和抽象类

    抽象基类 有些面向对象的语言,如JAVA,支持接口,可以声明一个支持给定的一些方法方法,或者支持给定存取协议的类.抽象基类(或者ABCs)是Python里一个相同的特性.抽象基类由abc模块构成,包含 ...

  2. 【巷子】---vue基于mint-ui三级联动---【vue】

    一.基本配置 https://github.com/modood/Administrative-divisions-of-China 三级联动数据地址 二.vue基本配置 1.cnpm install ...

  3. 2.1TF模型持久化

    目前tf只能保存模型中的variable变量,整个模型还不能保存,版本1.x 保存模型代码 import tensorflow as tf import numpy as np # Save to f ...

  4. 如何写好PPT

    怎样写好ppt? 阿里巴巴矢量图标库 优品PPT SmartArt PPT美化大师

  5. 基于express + express-myconnection 的请求处理模板

    前提: 开发APP时经常会用到后台提供的接口,作为一个一直搞前端的程序员.如何写后台这事不能真的一窍不通把.所以还是多多少少了解一些后台. 以前尝试过用java 的spring + springMVC ...

  6. Redis is loading the dataset in memory

    Redis is loading the dataset in memory During handling of the above exception, another exception occ ...

  7. function &w(){}

    CodeIgniter 3.1.0 <?php //\system\core\Common.php function &load_class($class, $directory = ' ...

  8. rank() over,dense_rank(),row_number() 的区别

    转自:https://jingyan.baidu.com/article/597035521ff2ec8fc107404b.html rank() over是的作用是查出指定条件后进行一个排名,但是有 ...

  9. 两种JS事件流

    1.事件冒泡流(从注册事件元素到外侧容器元素的过程): 2.事件捕获流(与冒泡相反的过程):

  10. 洛谷P2801 教主的魔法 分块

    正解:分块 解题报告: 哇之前的坑还没填完就又写新博客? 不管不管,之前欠的两三篇题解大概圣诞节之前会再仔细想想然后重新写下题解趴,确实还挺难的感觉没有很好的理解呢QAQ还是太囫囵吞枣不求甚解了,这样 ...