更改了mpm-worker 2.4配置但没有效果

时间:2016-12-23 13:32:46

标签: apache httpd.conf apache2.4

我已将默认配置更改为:

<IfModule worker.c>
ServerLimit 20
StartServers            4
MaxRequestWorkers               600
MinSpareThreads         25
MaxSpareThreads         75
ThreadsPerChild         30
MaxConnectionsPerChild  0
</IfModule> 

当达到峰值时,使用服务器状态,当它达到400个会话时,它似乎仍然没有创建新的工作者并保持在400:

BusyWorkers: 400
IdleWorkers: 0
Scoreboard: KKKKCKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKRKCKKKKKKCKKRKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKRKKKKKCKKKCKKKKKRKKKCKKKKKKCKKKKKKKKKKKKRCKKCKKKCKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKCKKKRKKKKKKKRKKKKKKKKKKKKKCKCKKKKKCKKKCKCKKRCRKKKKKKKKKKKKRKKKKKKKKKKKKKKCKKKKCKKKKKRKCCKKKKKKKKKKKKKKCKKKKKKKRKKKKKKKKKKCKKKCKKRKKCRKKRKKKKKKKKKKKKKCKKKKRKKKKRKKKKCKKKKKRKKKKKKKKKKKKKKKKKKKKRKKKKKKKWKKKKKKKKKKKCKKKK

如果我将用户更改为apache并发出ulimit -u,我会得到1024

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您需要完全停止/启动以使mpm更改生效,重启或优雅仍会为您提供先前的设置。

答案 1 :(得分:0)

我终于弄清楚为什么Apache无法创建400多名工作人员。这是因为配置文件格式。 在我们的httpd.conf文件中,worker和prefork模块的设置就在“LoadModule”部分之前编写。似乎apache不喜欢这种格式,因此忽略了工作模式的值并回退到默认值。 修复非常简单,我们必须从“LoadModules”部分上面删除worker和prefork模块的设置,并将它们放在此部分之后。

这些值最适合1000个并发连接:

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
    ServerLimit                                         40
    StartServers                                       5
    MinSpareThreads                           25
    MaxSpareServers                           75
    MaxRequestWorkers                   1000
    ThreadsPerChild                             25
    MaxConnectionsPerChild     0
</IfModule>
#
# worker MPM
# StartServers: initial number of -erver processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    ServerLimit                                         40
    StartServers                                       5
    MinSpareThreads                           25
    MaxSpareThreads                          75
    MaxRequestWorkers           1000
    ThreadsPerChild                             25
    MaxConnectionsPerChild     0
</IfModule>

之后只需停止/启动apache进程。