O que está causando o Apache httpd (+ mod_proxy_ajp) a descartar conexões

1

Eu tenho o seguinte VirtualHost configurado (Apache 2.2.22)

<VirtualHost *:80>
    ServerName ************

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ErrorLog /var/log/apache2/dalo-lt_error_log
    LogLevel warn
    TransferLog /var/log/apache2/dalo-lt_access_log

    ProxyPass / ajp://localhost:8009/
    ProxyPassReverse / ajp://localhost:8009/

    <Location />
        Order allow,deny
        Allow from all
    </Location>

</VirtualHost>

Com o seguinte no server.xml (7.0.39)

do meu Tomcat
<Connector port="8009" protocol="AJP/1.3"
           redirectPort="8443"
           connectionTimeout="60000"
           maxConnections="36864"
           maxThreads="600" />

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           maxConnections="36864"
           maxThreads="600"
           redirectPort="8443" />

Quando executo meu teste de estresse através do vhost: 80 + ajp, começo a ver as conexões interrompidas após um certo ponto. No entanto, se eu executar o teste diretamente por meio do conector http do tomcat (: 8080), não vejo nenhuma conexão perdida.

Qual é a melhor maneira de determinar o que está causando isso?

Apenas para completar, aqui estão algumas configurações do meu apache2.conf

<IfModule mpm_prefork_module>
    StartServers          10
    MinSpareServers       10
    MaxSpareServers      20
    MaxClients          500
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_worker_module>
    StartServers          4
    MinSpareThreads      50
    MaxSpareThreads      450
    ThreadLimit          256
    ThreadsPerChild      150
    MaxClients          300
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_event_module>
    StartServers          4
    MinSpareThreads      50
    MaxSpareThreads      450
    ThreadLimit          256
    ThreadsPerChild      150
    MaxClients          300
    MaxRequestsPerChild   0
</IfModule>

Atualizar : Solicitar server-status?auto rende o seguinte durante a fase do teste de carga quando os pedidos estão sendo descartados - por isso, parece-me que há o suficiente trabalhadores etc. para poupar

    
por jlb 11.02.2015 / 13:19

1 resposta

1

O servidor da web Apache começará a abandonar as conexões se estiver recebendo muitas solicitações. Você pode usar mod_status para ver o placar, se estiver cheio, você pode aumentar o número de trabalhadores. (deve ser investigado se o aumento do número de trabalhadores se adequar ao seu ambiente)

    
por 11.02.2015 / 13:44