我们真的需要用LAMP在ubuntu服务器上交换分区吗?我想我不需要它,但更好的是知道它是否会导致一些无法预料的行为。
其实我的想法是:
我能关掉生产服务器的交换吗?
谢谢!
发布于 2010-11-29 02:02:23
我能关掉生产服务器的交换吗?
不是的。总是有一些交换空间。
我试着在一次没有交换的情况下运行一个生产服务器,大约一周后,在Wordpress更新之后,PHP开始消耗比我们想象的更多的RAM。当您耗尽RAM并且启用了交换时,事情会慢下来(有时很慢,有时只会稍微慢一点,这取决于被插入的是什么),但是您可以登录、发现问题并试图修复它。
当您耗尽RAM并且没有交换时,进程就会死掉,事情会停止,很多时候您唯一的选择就是重新启动。但在你重新启动之前,事情很可能会破裂。
在我的世界里,破碎远比缓慢更糟糕。
当然,如果您发现您的系统经常使用很大一部分交换(它经常使用一些只是作为转移旧缓存的一种方式),显然您有一个问题(“插入RAM请”),但是肯定建议将它作为一个安全网。
针对SpamapS的评论:
在“成功网站”的世界里,你有热故障转移,负载平衡和其他工具,让机器爆炸,对网站的其他部分没有任何影响。但这需要很多钱。对于大多数网站来说,拥有多余的硬件是不经济的,即使他们赚了钱。
我完全不同意你对正常运行时间的评论。在传统的电子商务设置中,如果人们看不见你的网站,他们就无法从你那里购买。这不仅仅是电子商务,如果你在任何一段时间内处于低谷,所有的在线商业兴趣都会受到更多的抨击。我之所以知道,是因为我为公司提供网站和服务,并经营自己的网站。慢慢来=脾气暴躁,但情绪低落=愤怒。即使你一次只下来一分钟,如果一个用户看到“为维护而停机”的通知超过了几次,他们就会认为你无法保持网站的正常运行。
一个缓慢的服务器并不理想,但是交换并不总是在那里运行,这是允许事情在你修复的时候继续运行的最后手段。
您还假设机器上只有一个服务在运行。再一次,如果你能把所有的东西一分为二的话,这可能是真的,但在现实世界中,事情会被综合在一起。多个网站、ssh守护进程、ftp服务器、电子邮件服务器等。一个泄漏到交换中的进程甚至可能不会影响另一个服务。没有交换,所有的东西都有一个立即随机终止的平等机会。你控制不了它。
当然,交换不是唯一的答案。当你没有内存的时候,你需要监控来提醒你,但是对于大多数人来说,仅仅是拔掉插头和重新启动并不是解决问题的方法。我相信这对你负责的任何一个跨国网站都有效,但对于我们这些仅仅是凡人(占互联网的大多数)来说,这样做是商业自杀。
发布于 2010-12-06 07:33:30
我不得不不同意在生产服务器上进行交换。
根据我的经验,旋转磁盘交换会降低系统的可预见性,并且更容易使整个系统故障受挫。一台高负载、流行的服务器正在使用本地的慢磁盘执行任何操作,它很快就会变成比失败状态糟糕得多的东西。响应时间将提高到正常水平的100倍,简单的事情,如通过控制台或ssh登录可能需要几分钟。
SSD交换是一种特殊情况,它至少会删除通常会导致系统死亡的搜索时间减慢。然而,写仍然很慢,所以您仍然需要等待很长一段时间才能从失控的进程中恢复过来。
如果没有交换,您的LAMP服务器将简单地关闭进程以释放RAM。适当的监视应该提醒您注意这一点,并在关键进程被杀死时将服务器从生产中移除。最糟糕的情况是,您的登录方法全部关闭,您必须做一个硬重置/电源循环。这种最坏的情况仍然很可能发生在失控的交换机器上,但很难检测到。
如果使用PHP,请启用内存限制,并监视日志的故障。这里有一个技巧,在开发服务器上设置的限制低于生产中的限制。如果在apache下使用mod_php,那么将MaxRequestsPerChild设置为几千,这样httpd的死就会随着时间的推移而变得太大。最重要的是,监控内存的使用!通常情况下,内存会随时间而增加,您只需要在调试问题时定期重新启动一个泄漏的服务。
发布于 2010-11-29 02:13:30
当系统确定活动进程需要物理内存且可用的未使用物理内存不足时,将使用交换空间。如果系统碰巧需要更多的内存资源或空间,那么物理内存中的非活动页将被移动到交换空间,从而释放该物理内存用于其他用途。
这种情况将在服务器中多次发生。
a)。非优化的脚本可以消耗大量的内存。
b)。像备份这样的脚本总是占用大量内存。
c)。繁忙的交通
因此,有一些交换空间是一个很好的实践。
https://askubuntu.com/questions/15337
复制相似问题