|
发表于 2008-12-7 14:09:48
|
显示全部楼层
Post by jeff_yecn;1916532
这个讨论很有趣,也许我把我之前简单的回复澄清一下:
作为术语上的 swap, 总是需要的,系统总是假设存在 swap。我说的不要 swap,指的是不作硬盘 swap,而建一个很小的内存虚拟盘作为 swap。要 swap 的话,就是使用硬盘作为 swap 介质。使用硬盘分区还是文件,相对来说并不是那么重要的选择。
如果是桌面系统,那么使用硬盘 swap 肯定应该是个好的选择。三个理由:
1)桌面环境,你很难预测内存的用量会到什么程度,即使你有很多内存,也会用尽。
2)你可以忍受 swap 开始的时候系统变慢,关掉一点程序,喝杯咖啡休息一下,回来就好了。但你没有办法忍受编辑了一半的文件,因为没有内存而被突然关闭。
3)电脑总在你面前,实在不行,拔掉电源重新启动就好了。
对于生产环境的关键服务器,那么情况就不一样了。使用硬盘 swap 的坏处有:
1) 当大量硬盘 swap 开始以后,服务器会很缓慢,甚至于慢到没有办法 ssh 登录。最终需要到机房去进行控制台维护。
2) 少量的 swap 很难察觉,而且由于内核总有或多或少的 Bug,因此即使内存足够的情况,swap 也可能发生。这时候,容易导致或多或少很难定位的奇怪瞬间性能问题。
所以,对重要的服务器,宁愿不使用硬盘 swap。听起来很疯狂,不过实际上是个好办法:
1) 内存太便宜,很少有服务器的内存会成为瓶颈。
2) 当真的内存不够的时候,你会宁愿损失掉几个进程,也不原意全部进程都因为缓慢事实上全部废掉。
3)服务器怕的是慢,而不是 Down 掉。因为重要的服务器都会有冗余,一个服务器 down 掉,监控很容易发现而把流量送到其它的服务器上去。而缓慢的情形,则很难发现,通常到发现的时候,已经损失巨大了。
不太明白!
你的意思是服务器为了性能可以不要swap?从而带来因内存耗尽down机的可能性?
我觉得不太合理吧?就像我接触的行业服务器怕的不是慢而是down机,慢的时候最多让管理员把一些优先级低的工作先停掉,把资源给重要的工作跑,down机可麻烦了,跑了几个小时或几天的重要工作是不允许服务器突发down机的。
还有,我觉得服务器比桌面更容易耗尽内存!desktop只有本人使用,起码可以做到随时观察资源情况,预计资源使用,例如已打开很多进程,多数人都会关掉一些再开启另外的进程,无休止的开启进程在桌面领域比较少吧。
但服务器使用除了管理员谁会去关心服务器上现在一共跑着多少东西?管理员也不可能长时间去监测着啊。如果1,2个技术开发项目组或公司同时在一台小型服务器上工作,资源被耗尽真是随时会发生的事情啊!10多20个人每人扔几个job上去后台跑几天,你能保证多少内存足够?一但发生down机,带来的损失岂是性能所补救?
以上个人愚见,请指教。 |
|