我一直在努力改善我们的Centos 5.5 VDS的内存使用情况,现在有了512MB的内存。 我已经能够使用tuneup脚本来极大地改进MySQLconfiguration,但是让Apache的内存使用率降低会有点麻烦。 我的一部分问题是在各种网站,论坛等方面的build议相互冲突。作为生产服务器,我将在testing机器上使用正常的修改和testing周期会有点太破坏性。
为了增加我的困惑,我将开发机configuration得尽可能接近VDS的克隆,并且使用更less的RAM和完全相同的Apacheconfiguration。 虽然在白天或晚上的安静时间比较两者显然很难适用相同的负载。
Apache是否有一个tuneup脚本,就像那些可用于MySQL的脚本一样,可以通过分析服务器运行时发生的事情来帮助优化configuration。
编辑:
要么我一直不清楚,或者人们没有阅读这个问题,所以我会澄清。
我不是在这里要求任何人提出build议或build议替代scheme。 我在问是否有人知道脚本可以分析服务器上正在发生的事情,并根据这些信息提供关于Apacheconfiguration的build议。
我不知道Apache的任何这样的脚本,因为与MySQL相比,只有一些影响Apache内存使用的东西:
下面列出了一些您可以尝试的具体内容。 如果可能,首先尝试测量效果并对您的开发平台进行testing,并且/或者在生产站点逐步实施任何更改。
MaxClients尽可能低。 在一个小容量的网站上,你可能会远离10以下的数字。你还可以保持其他相关的设置,如MaxSpareServers低。 MaxRequestsPerChild如果使用的是任何dynamic脚本,或者使用Apache实例,随着时间的推移,内存使用量会逐渐增加,因此请使用较低的值(100-1000)。 这会阻止内存饥饿或泄漏脚本,从而消耗太多的内存。 为什么不看一个小内存的Web服务器:NGINX? 它被称为低内存使用率,build议在VPS上运行的网站。
无论如何,这些天400MB是一个networking服务器并不多,你可能要考虑更换盒子! Apache2吃了很多内存。 它必须configuration,configuration选项是混乱的。
编辑你的Apacheconfiguration,通常在/etc/apache2/apache2.conf
在mpm_prefork_module设置中,将StartServers设置为1,将MinSpares设置为1或0,将MaxSpares设置为3.例如,运行10个进程将超载512MB服务器(Apache2的默认最小值为256mb,但不能执行任何操作接着就,随即 !)。 为了减less服务器上的占用空间/stream量,可以尝试如下所示:
<IfModule mpm_prefork_module> StartServers 2 MinSpareServers 2 MaxSpareServers 3 MaxClients 150 MaxRequestsPerChild 500 </IfModule>
在testingstream量负载时更改上述设置,以查看新设置是否可以处理。
你可以调低Apache的KeepAlive值(在我的情况下为2〜5),这样可以减less等待空闲客户端连接的服务器进程,这些进程可能不会请求更多的内容。
KeepAlive On KeepAliveTimeout 2 MaxKeepAliveRequests 80
降低服务器在等待请求之前等待的时间:
Timeout 45
你也可以阅读: http : //httpd.apache.org/docs/2.0/misc/perf-tuning.html
但是,再次,这个设置是非常小的stream量和NGINX可以做更多的相同的硬件..