Apache Prefork MaxClients 不能超过 256

Apache Prefork MaxClients 不能超过 256

我管理一个 Centos 6.6 服务器(cpanel 许可证已过期 / 也许这并不重要),它有 8 个核心和 64GB RAM,当 HTTP 服务器同时连接数达到 250 到 300 个时,它就会变得非常慢。

当我发现 mpm prefork 配置是提高服务器性能的解决方案时,我查找了 httpd.conf 文件及其所有内容中的参数,但什么也没有找到。看来我的 apache 使用了默认的 mpm 参数。

因此,我尝试添加新配置,并通过我的 mod_status 网页注意到最大客户端数量发生了一些变化。当我将值设置为服务器限制最大客户数小于 256,服务器状态显示会发生变化,但当我尝试一个值时大于 256,它就会停在 256。

以下是服务器状态页面的简明版本,其中包含最大客户数服务器限制设置257,但它显示了 4 行 64 个工人,总共 256 个位置。http://apache.org/server-status

Server Version: Apache/2.4.10 (Unix) OpenSSL/1.0.1e-fips mod_bwlimited/1.4
Server MPM: prefork
Server Built: Jan 23 2015 21:04:30

--------------------------------------------------------------------
Current Time: Thursday, 12-Feb-2015 19:15:49 CET
Restart Time: Thursday, 12-Feb-2015 19:13:41 CET
Parent Server Config. Generation: 266
Parent Server MPM Generation: 265
Server uptime: 2 minutes 8 seconds
Server load: 0.76 0.66 0.63
Total accesses: 7771 - Total Traffic: 296.0 MB
CPU Usage: u3.76 s.62 cu77.6 cs7.05 - 69.6% CPU load
60.7 requests/sec - 2.3 MB/second - 39.0 kB/request
256 requests currently being processed, 0 idle workers

WWWWWKWKWKWWRRWWWKKWKKWWWKKWWWCKKKWWWWWKKWCWWWWWKKCWWKKWKCWKRCWW
WWWKKKKKWKWKWWWCWWKKWWRWKKRWWCWKWWWWKKKKKKWKCKWKKKKKWCWKCWWWKWRW
KWKKCKKKWKWKWWKLWWWKWWKCCCWKWWKKKKKWKWWKWWKKKWKWWCCRKKCCWKKWKWCW
CWKKRKKWWKRKKWWWWKWWWKWWKKWKKKWWWKWWWKLKWWKWWKKKKWWWKWWKRKWKWCWW

我该如何解决这个问题?实际上,我需要调整 prefork 参数才能同时为 10000 个客户端提供服务。我无法使用 NGINX 来提供静态文件。

我还想获得有关运行时 MPM 配置的更多信息。

有什么线索吗?


编辑:这是我添加的 mpm 配置片段

<IfModule prefork.c>
    Mutex default mpm-accept

# BEGIN : CUSTOM CONFIGURATION - all the following code is added by me
#    StartServers         6
#    MinSpareServers      6
#    MaxSpareServers     12

## Whatever the value (> 256) I enter for those two parameters, it doesn't exceed 256 in runtime (as shown in server-status page)
    ServerLimit        512 
    MaxClients         512
# END : CUSTOM CONFIGURATION
</IfModule>

由于上面两个参数没有注释,我不明白如何增加 256 个限制。是不是缺少了什么?

答案1

我已经解决了这个问题。

问题 :高于 256 的 ServerLimit 和 MaxClients 值不会生效,它们保持在 256。每次我更改 httpd.conf 中的内容,然后使用以下命令重新启动 apache:

# httpd restart

什么都没改变。

解决方案 : 确保 httpd 完全停止然后重新启动。对我有用的命令(而不是上面的命令)是:

#httpd stop
#httpd start

为了考虑为 MPM 设置的新限制,看起来应该停止所有 apache 服务器实例。

感谢您的回复,如果我错了,请纠正我。

答案2

您必须使用 apache conf、mpm conf。

本博客继续介绍如何进行计算:https://rudd-o.com/linux-and-free-software/tuning-an-apache-server-in-5-minutes

相关内容