Ec2 Ubuntu 服务器运行 apache 和 php。移动应用程序托管在服务器上。应用程序通过 80 端口连接到服务器。问题是 apache 在高峰时段限制为 150 个进程。当 apache 有 150 个进程时,CPU 几乎 100% 空闲。在 Prefork mpm 上将最大客户端数增加到 500。但它仍然限制为 150 个进程。Ps aux 和 newrelic 显示 apache 进程限制为 150 个进程。
答案1
问题是 MaxRequestWorkers 是 150/etc/apache2/mods-enabled/mpm_prefork.conf在 apache conf 上增加值后,它没有变化。现在更改为
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 1200
MaxRequestWorkers 1200
MaxConnectionsPerChild 1000
</IfModule>
-在/etc/apache2/mods-enabled/mpm_prefork.conf现在 Apache 的点击量越来越大。
答案2
可能是ServerLimit
变量。它通常不在默认配置文件中,因此您必须添加它。重新启动 Apache 以使其生效(重新加载不起作用)。
我通常会制作这样的块:
<IfModule mpm_prefork_module>
StartServers 150
MinSpareServers 150
MaxSpareServers 150
MaxClients 150
Serverlimit 150
MaxRequestsPerChild 10000
</IfModule>
这会禁用工作者创建/销毁,我认为这毫无意义。
答案3
阅读MPM 模块的 Apache 文档。看来您需要增加 MaxRequestServers 值。
该页面还包含性能调整文档的链接。