Apache 优化

Apache 优化

我正在尝试在 aws 实例 EC2 m3 Large(具有 7.5 Gio 或 RAM)上正确设置 apache 安装。

每周一到两次,apache 崩溃并显示以下消息:[Thu Aug 14 12:38:33.552250 2014] [mpm_prefork:error] [pid 6279] AH00161: 服务器已达到 MaxRequestWorkers 设置,请考虑提高 MaxRequestWorkers 设置

我的问题是,我应该如何设置我的 httpd.conf?

目前,我至少有 4.5 Gio 的可用 RAM。

我想尽可能地利用我的硬件并防止 Apache 突然崩溃。

这是我的 Apache 设置:

<IfModule mpm_prefork_module>
    StartServers              20
    MinSpareServers           15
    MaxSpareServers           30
    MaxRequestWorkers         80
    MaxConnectionsPerChild  1000
</IfModule>

KeepAlive On
KeepAliveTimeout 2
MaxKeepAliveRequests 100

我的请求平均为 25Mb,我允许 php 发布 125 Mb

有谁可以给​​我建议吗?

非常感谢。

答案1

我从中抄袭了一些句子http://httpd.apache.org/docs/current/misc/perf-tuning.html

影响 Web 服务器性能的最大硬件问题是 RAM。Web 服务器永远都不应该进行交换,因为交换会增加每个请求的延迟,超过用户认为“足够快”的程度。这会导致用户点击停止并重新加载,从而进一步增加负载。您可以并且应该控制 MaxRequestWorkers 设置,以便您的服务器不会生成太多子进程而开始进行交换。执行此操作的过程很简单:通过 top 等工具查看进程列表,确定平均 Apache 进程的大小,并将其除以总可用内存,为其他进程留出一些空间。

答案2

除非您的内存不足(听起来不是),否则您应该严格按照它所说的操作:提高设置MaxRequestWorkers

如果内存不足,则需要通过增加实例大小或添加更多实例来开始扩大或缩小内存。

相关内容