开发者社区> shy丶gril> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/1762907

swap的功能与相应内核参数

Linux 将物理内存分为内存段的部分被称作“页面”。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放用于页面的内存。物理内存和交换空间的总大小是可用的虚拟内存的总量。交换空间通常是一个磁盘分区(此分区在安装操作系统时,系统通常会默认划分出一段空间用于交换分区,默认将交换空间的大小设定为内存的1倍到2倍),也可以是一个文件。

内核参数中有一个vm.swappiness参数,此参数代表了内核对于交换空间的喜好(或厌恶)程度。Swappiness 可以有 0 到 100 的值,默认的大小通常是60,但也有的是30。设置这个参数为较低的值会减少内存的交换,从而提升一些系统上的响应度。如果内存较为充裕,则可以将vm.swappiness大小设定为30,如果内存较少,可以设定为60。如果将此数值调整的过大,可能损失内存本来能提供的性能,并增加磁盘IO消耗和CPU的消耗。

关于阿里云云主机swap功能

阿里云提供的云服务器(Elastic Compute Service,简称 ECS),是云主机的一种,当前采用的虚拟化驱动是Xen(这一点可以通过bios vendor和virtual type可以看出)。

默认情况下,阿里云云主机的swap功能是没有启用的,原因当然是通过取消swap功能可以降低磁盘IO的占用率来让用户购买更多的内存、提高磁盘寿命和性能。

阿里当前的做法是:

1.不创建swap分区,由镜像决定

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

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

如何启用swap分区?

步骤如下:

1.查看当前系统中是否已经启用swap分区

1
2
cat /proc/swaps   
top

2.如果没有启用swap分区功能,则新建一个专门的文件用于swap分区

1
dd if=/dev/zero of=/data/swap bs=512 count=8388616

注:此文件的大小是count的大小乘以bs大小,上面命令的大小是4294971392,即4GB

3.通过mkswap命令将上面新建出的文件做成swap分区

1
mkswap /data/swap

4.查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成30或者60

1
2
3
cat /proc/sys/vm/swappiness   
sysctl -a | grep swappiness    
sysctl -w vm.swappiness=60

注:若想永久修改,则编辑/etc/sysctl.conf文件

5.启用此交换分区的交换功能

1
2
swapon /data/swap   
echo "/data/swap swap swap defaults    0  0" >> /etc/fstab

如何关闭swap分区?

1
2
swapoff /data/swap   
swapoff -a >/dev/null

关于多个交换分区在使用上的优先级    
如果你有多于一个交换文件或交换分区,你可以给它们各自分配一个优先级值(0 到 32767)。系统会在使用较低优先级的交换区域前优先使用较高优先级的交换区域。例如,如果你有一个较快的磁盘 (/dev/sda) 和一个较慢的磁盘 (/dev/sdb),给较快的设备分配一个更高的优先级。优先级可以在 fstab 中通过 pri 参数指定:    

1
2
/dev/sda1 none swap defaults,pri=100 0 0    
/dev/sdb2 none swap defaults,pri=10  0 0

或者通过 swapon 的 ?p (或者 ??priority) 参数:    

1
swapon -p 100 /dev/sda1

如果两个或更多的区域有同样的优先级,并且它们都是可用的最高优先级,页面会按照循环的方式在它们之间分配。

添加效果

PS: 原先对阿里云主机添加swap分区是否起作用表示质疑,现在看来,阿里在云主机中确实没做这方面的手脚。

image

注:关于top命令中的排序:top命令里面按下f或F,在通过箭头移动想要显示或者排序的列,按d表示显示或取消显示,按下s表示按此列排序,按下R表示翻转排序顺序。

一些可用的参考资料和扩展阅读材料:

Swap https://wiki.archlinux.org/index.php/Swap    
All about Linux swap space https://www.linux.com/news/all-about-linux-swap-space

云服务器 ECS https://www.aliyun.com/product/ecs

tag:Linux swap,阿里云添加swap交换空间,swap性能优化,云主机性能优化,云服务器性能优化

--end--

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1762907

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
最强缓存!阿里云重磅发布云数据库Redis企业版(Tair)系列及专属主机组服务
2020年3月11号,阿里云数据库Redis正式上线Redis企业版(Tair)系列产品,提供性能增强和混合存储两个系列。 关注阿里巴巴数据库技术公众号 菜单栏回复“redis” 即可获取发布会PPT资料啦! 性能增强系列提供3倍于社区版的性能,是目前最快的企业级缓存服务,混合存储系列通过引入 SSD存储介质,缓存成本降低70%-90%,满足超大容量低成本缓存需求。
1335 0
阿里云建站主机3折限时优惠(低至3折+附价格表查询)
阿里云服务器优惠精选 近期阿里云在服务器价格优惠方面频频发力,连续推出了多种服务器优惠活动,尤其是8月份推出的2折限时抢活动。阿里云2000优惠券免费领取(阿里云优惠券的作用:购买阿里云产品,最后支付结算的时候,阿里云优惠券可抵扣一部分费用。
1937 0
阿里云8月主机爆款限时抢购,2折起
阿里云8月主机爆款限时抢购活动正式开始了。 一、活动对象 阿里云官网已实名认证的注册的新会员用户,从未采购过任何阿里云产品。 二、活动时间 2019年8月6日至2019年8月29日(爆款商品数量限量,抢完活动即停止)。
1221 0
云服务器ECS优惠券 阿里云 ecs 5折优惠码 阿里云5折优惠码 阿里云5折推荐码 阿里云优惠码 阿里云的5折优惠券 阿里云服务器购买优惠码 服务器购买优惠码
购买阿里云服务器和其他相关服务都可以领取优惠券, 有的产品5折优惠哟, 领取方式:进入链接一键领取全部  注意, 领取的优惠券30天内有效,尽快使用:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=s306eooi&utm_source=s306eooi 简介:云服务器ECS,就是阿里云服务器,大家一定要清楚。
2612 0
阿里云ECS云主机Ubuntu 16.04图形化过程
步骤一 首先参考:https://help.aliyun.com/knowledge_detail/41530.html  (ubuntu的教程在下边) 按上面教程一路操作,直到这一步: 到这一步之后,下面的步骤可能就不适合了。
1961 0
什么是轻量应用服务器?与阿里云ecs和虚拟主机有什么区别?阿里云优惠券领取
什么是阿里云轻量应用服务器?轻量应用服务器和ecs有什么区别?新手应该选择轻量应用服务器还是ecs云服务器?轻量应用服务器能否使用阿里云优惠券?
35194 0
福利!阿里云独享云虚拟主机幸运券免费领取
随着云栖大会各个峰会的如期举办,阿里云、联想、SAP、中标软件以及思科等知名软件品牌最终达成一致共识,那就是面对竞争日益白日化的云市场格局,由多方联手共同完成云市场“生态密码”的破译难题,从而实现百万企业的智能化转型宏伟目标!
3090 0
+关注
1876
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载