“ajp_read_header: ajp_ilink_receive falhou”

1

Temos o Apache 2.2.24 na frente do Tomcat 7.0.33. Estamos usando conectores AJP com APR / nativo configurado. Recentemente notei um número de 500 erros nos logs de acesso do Apache para uma pequena proporção (0.3%) de pedidos para um recurso específico. Para cada uma dessas 500 respostas, há um par correspondente de linhas de erro no log de erros do Apache

[Wed Mar 06 04:07:42 2013] [error] ajp_read_header: ajp_ilink_receive failed
[Wed Mar 06 04:07:42 2013] [error] (70007)The timeout specified has expired: proxy: read response failed from (null) (*)

O tempo registrado para os erros é entre 5:06 e 5:07 minutos após o horário registrado para a solicitação. Correspondendo à diretiva Timeout 300 que está configurada. Nada é registrado no log de acesso do Tomcat, então presumo que a solicitação nunca chegue lá.

Presumivelmente, há algum problema de desempenho com o recurso (ele faz uma atualização de banco de dados e tem uma carga bastante alta), mas estou mais preocupado aqui em entender o que está acontecendo com a comunicação entre o Apache e o Tomcat:

  • em que ponto os pedidos expiraram? (conectando, lendo etc)
  • que opções tenho para monitorar o número de conexões ajp?
  • quais opções eu tenho para configurar o Apache e o Tomcat para melhorar a situação

O Apache é configurado usando uma regra de reconfiguração com o sinalizador [proxy,last] . O conector do Tomcat parece

<Connector port="8014"
           enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

Como eu disse anteriormente, estarei trabalhando para corrigir o gargalo no recurso Tomcat separadamente.

    
por scarba05 04.04.2013 / 14:22

0 respostas