阿里云
云栖社区2017年度内容特辑
发表主题 回复主题
  • 12553阅读
  • 14回复

关于swap的问题,请用户务必重视!

级别: 论坛版主
发帖
3273
云币
10680
— 本帖被 服务器之家 执行置顶操作(2014-08-11) —
两个大前提 =VZ_';b h  
1)swap不能代替物理内存使用。 q<z8P;oP^  
2)swap在非高内存主机上必不可少。 |_8l9rB5ip  
0}`-vOLd-  
关于swap的知识点比较绕,如果看不懂请多看几遍。 > .K%W *t  
swap空间上的数据,是存储在硬盘上的。 iZeq l1O  
所以很多人常常以性能问题,提出禁用swap的观点。因为在硬盘上读取数据的性能通常并不是很好。 S`FIb'J  
但是请注意,正常的情况下,swap空间上存储的是系统不会频繁使用的数据,调用的次数非常少,性能问题几乎可以忽略。 ,i<cst)$u  
什么是正常的情况?正常的情况就是物理内存还够使用。 BQg3+w:>  
如果物理内存不够用了?上面提到物理内存够用的时候只把不常使用的数据放到swap,那么,如果物理内存不够用了,系统会把物理内存放不下的数据尽量swap里放,因为它不得不这样做,这样一来就会造成系统频繁的操作swap数据。 =4SXntU!e  
还有另外一点再解释下,CPU可以读取内存上的数据,但是硬盘上的数据(也就是这里讲的swap ),需要先读入内存,然后才能交给CPU处理。 ~;Y Tz  
可能有很多人都明白,硬盘数据到内存的速度,要比内存的数据到CPU的速度,可能要慢上几百几千倍。 3rMJC\h  
\ ya@9OA  
提供一个具体实例来解读一下 ^5TVm>F@3  
2/s42 FoG  
1)如果没有swap: D^.  c:  
swap用了511M,空闲的物理内存是324M,也就是说,如果没有swap,内存已经爆了。 M_ %-A  
2)swap并没有影响到性能: IHd W!q  
如前面所说,这个时候系统还有足够的物理内存(351M),换句话说,现在swap里存储的还是不常使用的数据(也就是swap正在发挥正常的作用)。 '#LzQ6Pn  
3)如果一定不要用swap: "uIaKb  
正常的情况,swap是不常使用的数据,但是不常使用,它毕竟还是要使用,还是要从硬盘读取到内存,对于不差钱的土豪,完全可以花钱加内存,然后把swap去掉,只是这样做的性价比非常非常非常非常非常低。 c$&({Z{1  
7/QK"0  
再强调一下:swap不能代替物理内存用! 7f ub^'_  
已经重复了多次,swap正常的情况下只存放不常用的数据,如果物理内存不够用了,那么常用和不常用的数据都会放进swap,这样会导致系统频繁的从硬盘读数据,再往硬盘写数据,把硬盘IO卡成翔。 t;h`nH[  
所以不要觉得内存不够用了,多加些swap就可以了,不是这么回事。 jTt9;?)  
$,, PF/N8c  
什么样的主机可以不用swap? -wg}X-'z0  
从我己的使用经验来看,swap通常最多只会占用到几百M,没有见到超过1G的。 76<mP*5  
那么要考虑的问题就是:对于有多少物理内存的主机,这几百M到1G的内存是可有可无的,可以忽略的。 +D]raU  
我个人觉得,至少是8G起,如果内存还不到8G,比如只有1G、2G,甚至512M,swap还是加上好。前段时间处理过二台土豪机,64G的物理内存,这些内存根本用不完,当然就不再需要swap了。 w@cW`PlF  
YJ"D"QD  
swap并不是越多越好 .yXqa"p  
很早很早很早的文章会提到,swap通常设置为物理内存的2倍,但是现在年代不一样了,添加太多了根本用不到。 }a~hd*-#  
个人建议:2G和2G以下的,设置成和物理内存相同容量swap,2G以上的,设置为2G。 XJ3sqcS  
8G以上的机器可以不再设置swap,但是要自己设置好MYSQL缓存,PHP的memory_limit,处理PHP的进程数量(Apache或者php-fpm),把这些协调好,不要让内存在访问高峰爆掉。 breF,d$  
hPBBXj/=  
可能有人会说了,我没swap,一样用的好好的。 j+ -r(lZ  
对于访问量非常低的主机,这当然不会有问题,没什么好解释的。 H#;*kc a4  
h L [eA  
关于访问量: D0p*Sg  
既然上面提到访问量了,那么再多说下。 -NN=(p!<  
经常有人说,我网站一天就几十个IP,怎么也挂了? ={oNY.(Q  
要知道,“访问”你网站的,不只是浏览器,更多的是搜索引擎的蜘蛛,比如阿里巴巴旗下的垃圾蜘蛛“一搜”(已改名为神马),这些垃圾蜘蛛甚至会并发抓取,这样搞下来,对于服务器,和被攻击的效果是一样的,对于静态网站,影响不会很大,但是对于wordpress这种负载能力渣的不行的程序,影响可就太大了。 $B%KkD  
而蜘蛛的抓取,在流量统计(如51LA,CNZZ)里是统计不到的。所以这种情况就不要拿统计来说事了。 h^tCF=S  
/ugyUpyg  
最后总结下: Z)E)-2U$@  
听哥的话,小内存的机器,把swap加上,只有好处,没有坏处。 Yr-SlO>  
~i%=1&K&`  
原文链接: Kh$"5dy  
http://www.server110.com/linux/201408/10898.html H@xS<=:lM  
4y7_P0}:B  
阿里云的机器默认没有设置swap,设置swap的方法请参考下面的链接: Muk J^h*V  
http://www.server110.com/linux/201310/2924.html ~>=.^  
U0j>u*yE  
[q[37;ZEQ  
[ 此帖被服务器之家在2014-08-11 09:28重新编辑 ]
本帖最近评分记录: 5 条评分 云币 +19
vicy 云币 +1 - 2014-12-08
cloud_service 云币 +12 顶重口味 2014-11-18
元芳 云币 +1 优秀文章-欢迎进行技术分享,感谢你的支持! 2014-08-12
kideny 云币 +1 你是我偶像 2014-08-11
holdb 云币 +4 您的帖子很精彩!希望很快能再分享您的下一帖! 2014-08-10
本人非阿里云员工,所有言论不代表阿里云公司观点。
有偿提供:环境安装、配置、优化,数据迁移,安全加固,攻击防护,故障排除,长期代维等技术服务。
级别: 攻城狮
发帖
518
云币
283
只看该作者 沙发  发表于: 2014-08-10
说的有点道理
级别: 科学怪人
发帖
9985
云币
21872

只看该作者 板凳  发表于: 2014-08-11
分析的很好!
级别: 小白
发帖
11
云币
11
只看该作者 地板  发表于: 2014-08-11
Re关于swap的问题,请用户务必重视!
分析的不错
级别: 菜鸟
发帖
55
云币
72
只看该作者 4楼 发表于: 2014-08-11
Re关于swap的问题,请用户务必重视!
这个问题很纠结,没空间分给swap了。
级别: 小白
发帖
6
云币
7
只看该作者 5楼 发表于: 2014-08-11
Re关于swap的问题,请用户务必重视!
512M的飘过
级别: 攻城狮
发帖
779
云币
612
只看该作者 6楼 发表于: 2014-08-12
前排支持,值得学习
级别: 总版主
发帖
3238
云币
11993

只看该作者 7楼 发表于: 2014-08-12
优秀文章-欢迎进行技术分享,感谢你的支持!
级别: 码农
发帖
196
云币
322
只看该作者 8楼 发表于: 2014-08-13
必须膜拜
级别: 帮帮团
发帖
184
云币
214
只看该作者 9楼 发表于: 2014-08-14
一直很重视swap的
级别: 小白
发帖
2
云币
2
只看该作者 10楼 发表于: 2014-08-14
Re关于swap的问题,请用户务必重视!
我记得阿里云不推荐用swap,我反正自己挂了swap分区。虽然我已经是4GB的内存了,但由于在阿里云上跑仿真软件和matlab,所以内存还是捉襟见肘的。
级别: 菜鸟
发帖
99
云币
111
只看该作者 11楼 发表于: 2014-08-15
Re关于swap的问题,请用户务必重视!
说得不错
级别: 程序猿
发帖
209
云币
132
只看该作者 12楼 发表于: 2014-11-18
讲的太好了,但是阿里云说linux的主机建议不使用swap,该如何是好呢?
级别: 小白
发帖
33
云币
23
只看该作者 13楼 发表于: 2014-11-18
Re关于swap的问题,请用户务必重视!
我都没有留意自己的设置了swap分区没有,直接使用镜像,没有修改。
级别: 码农
发帖
138
云币
180
只看该作者 14楼 发表于: 2016-08-06
你好,请问swap可以从数据盘上摘取空间做swap分区文件嘛?
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 18 + 75 = ?
上一个 下一个