Conexões simultâneas e módulo Prefork MPM

1

Estou testando meu servidor para saber quantas conexões simultâneas ele suporta. Eu configuro my mpm_prefork.conf desta maneira:

# 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
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of requests a server process serves

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers       5
    MaxSpareServers      10
    MaxRequestWorkers     100000
    MaxConnectionsPerChild   0
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Mas quando meu servidor recebe ~ 8200 conexões simultâneas, um erro é acionado e o apache não responde mais:

[notice] caught SIGTERM, shutting down

O servidor tem memória suficiente e sobra

As configurações estão ok? Eu tenho que mudar alguma coisa?

Obrigado

    
por Pedro Antônio 04.12.2017 / 12:59

1 resposta

0

Você também tem que alterar o valor ServerLimit . Na MaxRequestWorkers documentação :

For non-threaded servers (i.e., prefork), MaxRequestWorkers translates into the maximum number of child processes that will be launched to serve requests. The default value is 256; to increase it, you must also raise ServerLimit.

Mas há uma observação na documentação do ServerLimit :

There is a hard limit of ServerLimit 20000 compiled into the server (for the prefork MPM 200000). This is intended to avoid nasty effects caused by typos. To increase it even further past this limit, you will need to modify the value of MAX_SERVER_LIMIT in the mpm source file and rebuild the server.

    
por 29.12.2017 / 12:20