我一直在改进CentOS5.5VDS上的内存使用率,它现在有512 on的RAM。我已经能够使用一个调优脚本来极大地改进MySQL配置,但是在降低Apache的内存使用方面遇到了一些困难。我的部分问题是在不同的网站、论坛等上有矛盾的建议。作为一个生产服务器,我在测试机器上使用的正常的修改和测试周期会有点混乱。
让我更加困惑的是,我已经配置了一台开发机器,使它成为VDS的一个克隆,并且它使用了更少的RAM,并且具有完全相同的Apache配置。虽然使用相同的负载显然很困难,但在白天或夜晚比较时,我会非常接近两者。
是否有一个可用于MySQL的Apache优化脚本,可以通过分析服务器运行时发生的情况来帮助优化配置?
要么我不清楚,要么人们没有读到这个问题,所以我会澄清。
我不是要求在座的任何人提出建议或提出替代方案。我问这里是否有人知道一个脚本,它可以分析服务器上正在发生的事情,并根据这些信息就Apache配置提出建议。
发布于 2011-11-03 17:24:05
我不知道Apache可能有任何这样的脚本,因为与MySQL相比,只有少数几个因素会影响Apache的内存使用:
下面列出了一些你可以尝试的具体事情。如果可能的话,试着在您的开发平台上首先测量其效果和测试,并/或在生产站点上逐步实现任何更改。
MaxClients。在一个低音量的网站上,你很可能在10岁以下就可以逃脱,你也可以让其他的相关设置 (比如MaxSpareServers )保持低。MaxRequestsPerChild使用一个低值(100-1000)。这样就可以防止内存不足或泄漏脚本消耗过多的内存。发布于 2011-11-02 10:15:39
为什么不看一个内存占用小的Why服务器: NGINX?它以内存使用率低而备受赞誉,并被推荐用于运行在VPS上的站点。
无论如何,400 to对于现在的web服务器来说并不是很多,您可能需要考虑更换这个框!Apache2消耗了很多内存。必须对其进行配置,并且配置选项令人困惑。
编辑apache信任,通常在/etc/apache2/apache2.conf中
在mpm_prefork_module设置中,将StartServers设置为1,将MinSpares设置为1或0,将MaxSpares设置为3。例如,运行的10个进程将重载512‘t服务器( Apache2的默认最小值为256’t,但不能对其执行任何操作!)。为了减少服务器上的占用空间/少量流量,您可以尝试如下所示:
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 3
MaxClients 150
MaxRequestsPerChild 500
</IfModule>在测试流量负载时更改上述设置,以查看新设置是否能够处理该设置。
您可以将Apache的KeepAlive调低到较低的值(在我的例子中是2~5),他们可以期望更少的服务器进程等待空闲客户端的连接,而这些连接可能不会请求更多的内容。
KeepAlive On
KeepAliveTimeout 2
MaxKeepAliveRequests 80降低服务器在请求失败前等待的时间:
Timeout 45您还可以阅读以下内容:http://httpd.apache.org/docs/2.0/misc/perf-tuning.html
但是,这个设置只适用于很少的流量,NGINX可以用相同的硬件做更多的事情。
https://serverfault.com/questions/326976
复制相似问题