He notado un extraño patrón de retrasos al tratar de obtener sitios web; el comportamiento parece extremadamente distintivo, y es fácil para mí de reproducir, así que estoy bastante seguro de la mayoría de los detalles a continuación. Espero que alguien lo reconozca o sea capaz de resolverlo.
-
La duración del retraso parece aumentar con el tiempo transcurrido desde el reinicio de mi ordenador, por lo que puedo decir sin límites. Esto se ha probado con menos cuidado que los otros puntos, pero estoy seguro de que reiniciar arregla el problema y que rara vez aparece en las primeras horas después de reiniciar (y parece manejable durante mucho más tiempo).
-
El retraso aparece en cualquiera de Firefox, Safari o Chrome.
-
curl funciona bien normalmente. Pero mientras cualquiera de Chrome, Safari o Firefox está cargando una página, curl experimentará grandes retrasos. Al cerrar el navegador, todos los trabajos de curl que se estén ejecutando terminarán inmediatamente con éxito (por ejemplo, puedo iniciar 5 instancias de curl que obtengan diferentes sitios web, todos los cuales se detendrán en la barra de progreso mostrando que no hay progreso; cerrar Chrome hará que todos los trabajos terminen inmediatamente).
-
El retraso de curl es sustancialmente menor que el de las páginas web, incluso cuando existe. Ahora mismo es del orden de 15 segundos, porque no he reiniciado en un tiempo con la esperanza de depurarlo. Un sitio web tardará mucho más que esto, tal vez 15 segundos mientras "espera a www.---.com" seguido por longitudes comparables de tiempo de espera para otros.
-
Las latencias (según el ping) no aumentan durante los problemas.
-
Mientras el curl experimenta retrasos, diferentes trabajos de curl terminarán al mismo tiempo. Es decir, todos se colgarán durante un largo tiempo, y luego todos dejarán de colgarse en el mismo momento (y por lo tanto terminarán más o menos al mismo tiempo, en la escala de los más de 15 segundos durante los que se cuelgan). A veces esto ocurre en los navegadores, pero no de forma fiable (lo que creo que puede deberse a que un navegador tiene varias oportunidades de colgarse antes de terminar de cargar la página). Después de que los trabajos de curl terminan, reiniciarlos inmediatamente resulta en que se cuelgan exactamente de la misma manera, así que no es que el problema se haya resuelto (al menos no por mucho tiempo).
-
El retraso es bastante variado en las páginas web. No he hecho un estudio muy detallado (ese será el siguiente paso, supongo).
-
cuando se cuelga, curl -v se cuelga en la barra de progreso sin transmitir datos.
-
Mientras se cargan las páginas en Chrome, la mayor parte del tiempo se dedica a "esperar" a las CDN y a los servicios de terceros.
-
A menudo Chrome muestra una pantalla en blanco, y al pulsar "Stop" la página se renderiza (con la mayoría de los activos cargados, pero no todos). Supongo que esto está relacionado con el último punto, y es sólo un comportamiento de Chrome que aparece cuando tenemos este largo retraso, en lugar de estar estrechamente relacionado con el problema.
-
El retraso aparece cuando se conecta a muchas redes inalámbricas diferentes con distintas características de rendimiento (por ejemplo, una línea de 50mbps). No he probado con redes cableadas, aunque supongo que no importaría.
-
Del mismo modo, un DNS diferente no hace ninguna diferencia (lo cual no es sorprendente dado que el ping siempre está bien).
-
Observo el mismo comportamiento bajo niveles muy diferentes de estrés en el sistema. Por ejemplo, ahora mismo tengo 3 / 8 GB de memoria libre.