我有一个应该处理大约800个并发连接的网络服务器。 为此,我在工作模式下(在Centos 6上)使用以下值配置了Apache 2.4:
ServerLimit 40 StartServers 25 MaxClients 1000 MinSpareThreads 25 MaxSpareThreads 75 MaxRequestWorkers 1000 ThreadsPerChild 25 MaxConnectionsPerChild 0
然而,当我检查服务器状态时,我无法同时看到超过400名工作人员。 在error_log文件中我可以看到:" [mpm_worker:error] [pid 2559:tid 140190319810368] AH00286:服务器达到MaxRequestWorkers设置,考虑提高MaxRequestWorkers设置",但增加此值无效。 (在配置文件中每次更改后使用stop / start apache)。 我检查了ulimits,对于apache用户,nproc的值是2048。 我提到Apache是由我编译的,我没有在编译时明确设置任何限制。
这种限制可能是什么原因?
答案 0 :(得分:3)
所以我想出了导致这个问题的原因。在httpd.conf中,在加载模块之前声明了worker模块的设置,因此apache忽略了它们。在“LoadModule”部分之后移动它们可以解决问题。