
Alojamos nuestro servicio web en un servidor dedicado. A veces (yo diría 1 de cada 20) no se recibe respuesta del servidor. Eso hace que el navegador retroceda con un error de tiempo de espera.
Un detalle importante: en este caso, Apache no registra la solicitud. El servidor no está cargado, queda mucha memoria libre y potencia de CPU.
He perfilado el caso del problema con la utilidad tcpdump. Estas son las sesiones "buenas" y "malas" rastreadas por tcpdump. La solicitud es la misma en ambos experimentos. Bien: el servidor devuelve respuesta. Malo: no hay respuesta, error de tiempo de espera.
¿Ves por qué ocurre el problema a partir de estos datos? ¿Cómo puedo avanzar más para acercarme a la fuente del error?
Reemplacé mi dirección IP real con 123.45.67.890
---- Bad ----
12:23:36.366292 IP 123.45.67.890.61749 > myserver.superbservers.com.www: S 2125316338:2125316338(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
12:23:39.362394 IP 123.45.67.890.61749 > myserver.superbservers.com.www: S 2125316338:2125316338(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
12:23:45.365567 IP 123.45.67.890.61749 > myserver.superbservers.com.www: S 2125316338:2125316338(0) win 8192 <mss 1460,nop,nop,sackOK>
--------
---- Good ----
12:27:07.632229 IP 123.45.67.890.63914 > myserver.superbservers.com.www: S 3581365570:3581365570(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
12:27:10.620946 IP 123.45.67.890.63914 > myserver.superbservers.com.www: S 3581365570:3581365570(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
12:27:10.620969 IP myserver.superbservers.com.www > 123.45.67.890.63914: S 2654770980:2654770980(0) ack 3581365571 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 6>
12:27:10.838747 IP 123.45.67.890.63914 > myserver.superbservers.com.www: . ack 1 win 4380
12:27:10.957143 IP 123.45.67.890.63914 > myserver.superbservers.com.www: P 1:213(212) ack 1 win 4380
12:27:10.957152 IP myserver.superbservers.com.www > 123.45.67.890.63914: . ack 213 win 108
12:27:10.965543 IP myserver.superbservers.com.www > 123.45.67.890.63914: P 1:630(629) ack 213 win 108
12:27:10.965621 IP myserver.superbservers.com.www > 123.45.67.890.63914: F 630:630(0) ack 213 win 108
12:27:11.183540 IP 123.45.67.890.63914 > myserver.superbservers.com.www: . ack 631 win 4222
12:27:11.185657 IP 123.45.67.890.63914 > myserver.superbservers.com.www: F 213:213(0) ack 631 win 4222
12:27:11.185663 IP myserver.superbservers.com.www > 123.45.67.890.63914: . ack 214 win 108
--------
Detalles sobre el servicio.
Este es un servicio de informes meteorológicos. Está escrito en Perl, respaldado por MySQL. El script utiliza varios módulos (de CPAN y el nuestro).
El código es relativamente simple. El script descarga el clima de otro servidor, convierte el formato de datos y devuelve una respuesta XML. El clima se almacena en caché en MyISAM DB. Existe una base de datos de ubicaciones mundiales (INNODB) que también se puede solicitar mediante el script.
Alojamiento: SuperbHosting SO: Ubuntu
Respuesta1
Intenta usartcpdumpotiburón de alambrepara monitorear el tráfico de la red. De esa manera al menos sabrás si hay un problema de red. Es decir, comprobar si la solicitud llega a la máquina.
Además, de forma predeterminada, la mayoría de los navegadores tienen un número limitado (2) de conexiones que se pueden realizar a un mismo servidor. Si su página tiene algunos objetos javascript que "olvidan" cerrar conexiones, etc., es posible que el navegador nunca envíe la solicitud.
Respuesta2
¿Puedes intentar tu solicitud usando solo direcciones IP? Si es así, esto puede ayudar a reducir el problema.
¿Todas las solicitudes provienen de la misma ubicación que tiene el problema? Si es así, pruebe con otra ubicación, tal vez una computadora portátil en un Starbucks o algo así. Si ocurre desde más de una ubicación, usando diferentes navegadores, en una página muy simple sin AJAX o Javascript complicado, esa es información valiosa.
Si el uso de la dirección IP funciona de manera confiable, es probable que sea DNS. Conocer el nombre de dominio en uso puede ayudar a reducirlo.
Respuesta3
Iría con Michael Gaff y luego invertiría algo de dinero en la empresa de alojamiento; este tipo de problemas de tráfico ocurren muy fácilmente con paneles de conexión defectuosos, NIC, problemas con el controlador de NIC o cableado defectuoso, entre mil otras cosas de infraestructura.
Cuento con que haya probado esto desde diferentes ubicaciones (o tenga informes de otros lugares con los mismos problemas) y haya tenido el mismo problema de todos modos para que podamos descartar un problema por su parte, ¿correcto?
Soy un fanático del hardware, por lo que tiendo a inclinarme hacia las fallas de hardware como la causa de problemas extraños de software y de red y de destrucción masiva en general.
Respuesta4
El problema era una gran cantidad de conexiones TCP abiertas, ocasionalmente se interrumpían nuevas conexiones debido a esto.