De acuerdo con http://support.microsoft.com/kb/944884 , "cuando se envía una respuesta grande o respuestas grandes a un cliente a través de una conexión de red lenta, el valor del campo de tiempo puede ser más de lo esperado".
Tengo una situación en la que un cliente dirá: "Envié una solicitud a su servidor web a las 10:03:24 y tardó 20 segundos, ¿por qué?". También puedo ver esto en los registros de IIS, pero el módulo ASP.NET del servidor lo registró como tomando 100 ms, y los contadores de CPU y disco estaban bajos.
Sospecho que se debe a una conexión de red lenta. ¿Cómo puedo probar esto?
Actualizar:
1) Estas son solicitudes de servicios web SOAP, por lo tanto, no hay gráficos incrustados, solo una POST HTTP con una sola página XML de resultados.
2) Además, he reproducido esto al acelerar la velocidad de la red en el lado del cliente y los síntomas son exactamente los mismos.
3) El problema es intermitente, lo que significa que la misma solicitud es normalmente rápida para el cliente pero ocasionalmente lenta. No puedo reproducir esto por mí mismo que no sea estrangular la red. El registro ASP.NET del servidor lo muestra siempre rápido, pero el registro IIS lo muestra lento cuando el cliente dice que es lento.
4) Solo tengo acceso al servidor, y necesito proporcionar tanta información como sea posible al cliente para que acepten que el problema no estaba en el servidor y sepan qué registro / herramientas ejecutar en el cliente para encontrar la causa raíz.
Respuestas:
Comienza con la búsqueda de paquetes descartados entre el navegador de su cliente y todas las fuentes de imágenes / scripts / html para la página web antes mencionada. Si encuentra caídas de paquetes consistentes, entonces sabe con seguridad que hay algo en la red que debe repararse ... incluso si es solo un enlace que está sobrecargado. La caída de paquetes no es la única razón para una red lenta, pero es la fuente más común en mi experiencia. Otras fuentes podrían ser un proxy mal configurado o un motor de caché. Lamentablemente, no puedo enumerar todos los posibles culpables de la red aquí.
Sin embargo, las personas a menudo culpan a la red, cuando de hecho los problemas de velocidad están dentro de su propio control. Posibles explicaciones:
Podría continuar, pero el punto es que debes precisar la razón exacta de por qué la página es lenta. Una red defectuosa es posible; También es posible que otros factores contribuyan al lento rendimiento.
Para diagnosticar más a fondo:
curl
hasta que encuentre algo que parece demasiado lento, luego descubra por qué ese elemento en particular es lento.Por cierto, los ejemplos de Chrome y Firefox utilizaron una consulta CGI de Debian.org ; Este es un buen ejemplo de un retraso que proviene de una búsqueda CGI.
Cuando todo lo demás falla, puede obtener un
.pcap
de wireshark y ejecutarlotcptrace
; sin embargo, si bientcptrace
es muy bueno para analizar los volcados de paquetes, no hay garantías de que pueda aislar el problematcptrace
solo. Consulte esta respuesta para obtener información sobre el uso detcptrace
diagnósticos.fuente
El resultado final del artículo 944884 de kb es que el tiempo real requerido para completar la respuesta puede no reflejarse con precisión en el registro. Es por eso que el artículo menciona el tiempo de la red.
Si el síntoma es reproducible, realizaría una captura de paquetes en el lado del servidor (y preferiblemente también en el lado del cliente) para ver las horas reales en que el cliente reconoció la conexión.
fuente
El retraso de 20 segundos también podría deberse a que IIS tuvo que reiniciar su w3wp.exe, que se irá a dormir cuando no se use.
fuente