Diagnosticando um atraso de 2 minutos na solicitação HTTP GET

1

Em circunstâncias restritas, recebo um atraso 100% reproduzível de aproximadamente 2 minutos quando solicito uma página da Web pública.

A página em questão: link

Unindo logs de cliente (curl) e servidor (apache), uma troca típica se parece com isso:

[client] 15:42:03.694959 => Send header, 96 bytes (0x60) 0000: GET /console/login HTTP/1.1
<DELAY HERE>
[server] [24/Feb/2015:22:44:26 +0000] "GET /console/login HTTP/1.1"
[client] 15:44:25.984150 <= Recv header, 17 bytes (0x11) 0000: HTTP/1.1 200 OK

(As horas são diferentes devido aos fusos horários e os segundos podem estar um pouco desligados devido a relógios fora de sincronia.)

Coisas importantes:

  • O cliente está conectado por meio do meu provedor de Internet e recebe um endereço IP público em uma sub-rede específica. Dado um endereço IP estático de um intervalo diferente, o problema desaparece.
  • A página '/ console / login' neste servidor é solicitada. Não há atraso se eu solicitar 'console / forgotPassword'. Eu não notei um atraso semelhante em qualquer outro servidor.

Coisas que (aparentemente) não são relevantes:

  • Rede doméstica. O problema persiste independentemente de como o cliente se conecta ao modem do ISP e ao tentar diferentes modems.
  • Hora do dia / congestionamento. O atraso é consistente, não importa quando a solicitação ocorre.
  • DNS. O comportamento é o mesmo se eu usar um endereço IP em vez de um nome de host.
  • handshaking HTTPS Essa parte da interação 'curl' sempre ocorre sem demora; e não há atraso ao acessar 'console / forgotPassword' via HTTPS.
  • Configuração do cliente. Reprodutível em vários navegadores e via 'curl' na linha de comando. Reproduzível em vários sistemas cliente e sistemas operacionais.
  • Imagem / script / etc. Carregando. O atraso está presente ao usar 'curl', que não requer recursos extras.

Minha pergunta: qual é a explicação mais plausível para isso? Ou: o que devo fazer para diagnosticar?

Problemas no servidor? Pelo que entendi o formato de registro do Apache , o atraso está ocorrendo antes o servidor recebe a solicitação GET, mas eu agradeceria se alguém pudesse confirmar que essa é a maneira correta de ler os registros de data e hora do registro. Se assim for, não está claro para mim o que, se alguma coisa, o servidor pode estar fazendo antes de dar o pedido ao httpd, ou o que o httpd pode estar fazendo antes de obter um timestamp.

Problemas de rede? A parte complicada aqui é que o atraso aparentemente depende do conteúdo da mensagem no nível do aplicativo: a página específica que está sendo solicitada. E isso deve ser criptografado. Os administradores do ISP (cidade pequena) dizem que não realizam filtragem de conteúdo ... Pergunto-me, de qualquer maneira, se algum nó ao longo do caminho tem o meu intervalo de endereços IP em uma lista negra ou algo assim.

    
por Dan Smith 04.03.2015 / 19:36

1 resposta

0

Eu tive um problema semelhante, que parece ter sido causado por um tempo limite da conexão remota do xdebug. Se sua página está usando php com xdebug, talvez isso esteja causando o seu problema.

    
por 23.05.2016 / 22:04