我有几个 Wordpress 网站在 Apache 2.4.7 / Ubuntu 14.04.2 LTS 上运行。它是在 Microsoft Azure 上运行的虚拟机。这些网站正在使用也在同一台机器上运行的 MySQL 服务器。有时,网站会变得无响应,需要重新启动 Apache。调查错误日志 ( /var/log/apache2/error.log
) 会发现以下错误:
[mpm_prefork:error] [pid 5761] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
以下是 Apache 配置文件的内容(/etc/apache2/mods-enabled/mpm_prefork.conf
)
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 256
MaxConnectionsPerChild 1000
</IfModule>
我已将 提高到MaxRequestWorkers
允许的最大数量(256),但这种情况仍然发生。我尝试更改 的设置MaxConnectionsPerChild
,但似乎也没有任何效果。有时网站可以连续数周正常运行,有时 Apache 会在一天内瘫痪。有时,MySQL 进程也会停止工作并需要重新启动。
我还应该检查什么?
我们偶尔会收到一些较大的网站请求负载 - 这会导致问题吗?但更重要的是,这是否立即意味着我们需要有可用内存,否则 Web 服务器将崩溃?也就是说,无论 Web 服务器收到多少请求,有什么可以确保故障安全?