De acordo com http://support.microsoft.com/kb/944884 , "quando uma resposta grande ou respostas grandes são enviadas a um cliente por uma conexão de rede lenta, o valor do campo demorado pode ser maior que o esperado".
Tenho uma situação em que um cliente diz: "Enviei uma solicitação ao seu servidor da Web às 10:03:24 e demorou 20 segundos, por quê?". Também vejo isso nos logs do IIS, mas o módulo ASP.NET do servidor o registrou em 100ms e os contadores de CPU e disco estavam baixos.
Eu suspeito que é devido a uma conexão de rede lenta. Como posso provar isso?
Atualizar:
1) Essas são solicitações de serviço da Web SOAP, portanto, sem gráficos incorporados, apenas um HTTP POST com uma única página XML de resultados.
2) Além disso, reproduzi isso limitando a velocidade da rede no lado do cliente e os sintomas são exatamente os mesmos.
3) O problema é intermitente, o que significa que a mesma solicitação normalmente é rápida para o cliente, mas ocasionalmente lenta. Eu não posso reproduzir isso sozinho, além de estrangular a rede. O log do ASP.NET do servidor mostra sempre rápido, mas o log do IIS mostra lento quando o cliente diz que está lento.
4) Só tenho acesso ao servidor e preciso fornecer o máximo de informações possível ao cliente para que ele aceite que o problema não estava no servidor e saiba quais ferramentas de log / ferramentas executar no cliente para encontrar a causa raiz.
Respostas:
Começa com a procura de pacotes descartados entre o navegador do seu cliente e todas as fontes de imagens / scripts / html da página da web mencionada acima. Se você encontrar quedas consistentes de pacotes, sabe com certeza que há algo na rede que precisa ser corrigido ... mesmo que seja apenas um link que está sobrecarregado. Quedas de pacotes não são a única razão para uma rede lenta, mas é a fonte mais comum em minha experiência. Outras fontes podem ser um proxy ou mecanismo de cache configurado incorretamente. Infelizmente, não posso listar todos os possíveis culpados da rede aqui.
No entanto, as pessoas geralmente culpam a rede, quando na verdade os problemas de velocidade estão bem sob seu próprio controle. Possíveis explicações:
Eu poderia continuar, mas o ponto é que você precisa definir exatamente o motivo pelo qual a página fica lenta. Uma rede defeituosa é possível; também é possível que outros fatores estejam contribuindo para o desempenho lento.
Para diagnosticar mais:
curl
até encontrar algo que pareça muito lento, e descubra por que esse elemento específico é lento.BTW, os exemplos do Chrome e Firefox usaram uma consulta CGI do Debian.org ; este é um bom exemplo de atraso que vem de uma pesquisa CGI.
Quando tudo mais falhar, você pode obter um
.pcap
do wireshark e executá-lotcptrace
; No entanto, emboratcptrace
seja muito bom em analisar despejos de pacotes, não há garantias de que você possa isolar o problematcptrace
sozinho. Consulte esta resposta para obter informações sobre o uso detcptrace
diagnósticos.fonte
O resultado do artigo 944884 da kb é que o tempo real necessário para concluir a resposta pode não ser refletido com precisão no log. É por isso que o artigo menciona o tempo da rede.
Se o sintoma for reproduzível, eu executaria uma captura de pacotes no lado do servidor (e preferencialmente também no lado do cliente) para ver os horários reais em que a conexão foi reconhecida pelo cliente.
fonte
O atraso de 20 segundos também pode ser causado pelo IIS ter que reiniciar o w3wp.exe, que entrará em suspensão quando não for usado.
fonte