首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于低内存安装的Apache脚本

用于低内存安装的Apache脚本
EN

Server Fault用户
提问于 2011-11-02 10:05:04
回答 2查看 1.3K关注 0票数 1

我一直在改进CentOS5.5VDS上的内存使用率,它现在有512 on的RAM。我已经能够使用一个调优脚本来极大地改进MySQL配置,但是在降低Apache的内存使用方面遇到了一些困难。我的部分问题是在不同的网站、论坛等上有矛盾的建议。作为一个生产服务器,我在测试机器上使用的正常的修改和测试周期会有点混乱。

让我更加困惑的是,我已经配置了一台开发机器,使它成为VDS的一个克隆,并且它使用了更少的RAM,并且具有完全相同的Apache配置。虽然使用相同的负载显然很困难,但在白天或夜晚比较时,我会非常接近两者。

是否有一个可用于MySQL的Apache优化脚本,可以通过分析服务器运行时发生的情况来帮助优化配置?

编辑:

要么我不清楚,要么人们没有读到这个问题,所以我会澄清。

我不是要求在座的任何人提出建议或提出替代方案。我问这里是否有人知道一个脚本,它可以分析服务器上正在发生的事情,并根据这些信息就Apache配置提出建议。

EN

回答 2

Server Fault用户

发布于 2011-11-03 17:24:05

我不知道Apache可能有任何这样的脚本,因为与MySQL相比,只有少数几个因素会影响Apache的内存使用:

  1. MaxClients:客户端越多,使用的内存就越多。
  2. Mods:类似地,安装的mods/扩展越多,所需内存就越多。
  3. 动态脚本:运行动态脚本(如PHP )可能会根据Apache设置增加内存使用量。例如,假设您有10个小型PHP文件,其中一个很少使用大型/内存密集型文件。最终,所有Apache客户机都将运行这个大型PHP脚本,并使用更多的内存。
  4. 编译时间:我没有经常使用Apache编译时设置,但是如果在那里可以节省一些内存,我也不会感到惊讶。

下面列出了一些你可以尝试的具体事情。如果可能的话,试着在您的开发平台上首先测量其效果和测试,并/或在生产站点上逐步实现任何更改。

  1. 保持尽可能低的MaxClients。在一个低音量的网站上,你很可能在10岁以下就可以逃脱,你也可以让其他的相关设置 (比如MaxSpareServers )保持低。
  2. 比较Apache的预叉模式和工作模式,看看在内存使用方面是否存在显著差异。
  3. 消除所有非实际使用的mods/扩展。这可能比听起来更困难,因为要确定您使用的是哪一个并不总是容易的。
  4. 如果您正在使用任何动态脚本,或者看到Apache实例随着时间的推移而增长,请为MaxRequestsPerChild使用一个低值(100-1000)。这样就可以防止内存不足或泄漏脚本消耗过多的内存。
  5. 只有当您确实需要时,或者有很多以前编译Apache的经验时,才会考虑编译时内存优化。就我个人而言,在这一步之前,我将研究替代服务器。
票数 1
EN

Server Fault用户

发布于 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,但不能对其执行任何操作!)。为了减少服务器上的占用空间/少量流量,您可以尝试如下所示:

代码语言:javascript
复制
<IfModule mpm_prefork_module>
     StartServers          2
     MinSpareServers       2
     MaxSpareServers       3
     MaxClients          150
     MaxRequestsPerChild   500
</IfModule>

在测试流量负载时更改上述设置,以查看新设置是否能够处理该设置。

您可以将Apache的KeepAlive调低到较低的值(在我的例子中是2~5),他们可以期望更少的服务器进程等待空闲客户端的连接,而这些连接可能不会请求更多的内容。

代码语言:javascript
复制
 KeepAlive On
 KeepAliveTimeout 2
 MaxKeepAliveRequests 80

降低服务器在请求失败前等待的时间:

代码语言:javascript
复制
 Timeout 45

您还可以阅读以下内容:http://httpd.apache.org/docs/2.0/misc/perf-tuning.html

但是,这个设置只适用于很少的流量,NGINX可以用相同的硬件做更多的事情。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/326976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档