¿Por qué las conexiones iniciales son siempre más lentas?

2

Noté esto por primera vez al usar el insomnio (clientes HTTP) para probar algunos de mis puntos finales de API.

La primera solicitud que hago a mi servidor de API (y a otras) es siempre de 100 ms, pero las solicitudes secuenciales siempre tienen una latencia súper rápida.

First Request Image

Second Request Image

¿Cómo es esto posible? Traté de enviar datos aleatorios cada solicitud y esto todavía está sucediendo. También escuché recientemente sobre el protocolo QUIC de Google, que pretende reducir los viajes de ida y vuelta de solicitudes ~ 3 a 0 para servidores comunes. Esto tiene mucho sentido para lo que está sucediendo, pero QUIC ni siquiera está implementado en toda la web.

Kirk122
fuente
2
¿Está involucrado el DNS?
Kamil Maciorowski
Jaja. Eso es entonces. Pero ¿por qué DNS toma 100 ms +?
Kirk122
2
Realmente depende de su configuración. Pero una posible explicación (teniendo en cuenta el DNS) sería que su cliente no tiene una entrada en caché para ese servidor. Entonces, antes de poder hacer una solicitud, tendría que hacer una búsqueda de DNS para saber a qué servidor conectarse. El servidor y su cliente también pueden admitir mantener vivo, por lo que tal vez la conexión no se cierre entre solicitudes.
Seth
QUIC puede reducir las latencias, pero no a cero. Funciona creando su propio mecanismo que se comporta de manera similar a tcp usando udp y superando algunos de los límites del protocolo tcp. Aunque no es magia.
davidgo
También podría tratarse de la gestión de sesiones en el punto final remoto. La primera vez que se conecta, está asignando recursos a la conexión e iniciando subprocesos. Después de eso, solo estás reutilizando los mismos recursos hasta que se agotan y se liberan.
Appleoddity

Respuestas:

0

Como ya se mencionó en los comentarios a su publicación inicial, podría ser DNS, lo cual es una idea muy razonable en cuanto a la causa del retraso.

Sin embargo, no hay forma de que sepamos la respuesta real a su pregunta. No sabemos qué está pasando. tu Instalación, tampoco podemos, sin acceso.

Existe una herramienta que puede utilizar para diagnosticar el problema. Violinista Es una excelente herramienta, en la que puedo recomendar altamente. Puede ayudar a diagnosticar problemas basados ​​en la web. Te sugiero que le des una oportunidad.

Keltari
fuente