¿Qué es la latencia?

La latencia es el retraso hasta que llega una respuesta. Aprende en qué se diferencia del tiempo de respuesta y del throughput, y cómo medir p95 y p99.

¿Qué es la latencia?

La latencia es el retraso entre enviar una petición y recibir una respuesta. Para el tráfico web, MDN define la latencia de red como el tiempo que tarda un paquete de datos en viajar del origen al destino, normalmente medido como ida y vuelta. Las herramientas de pruebas de carga suelen usar un sentido más estrecho: el tiempo hasta que llega el primer byte de la respuesta. Ambos se miden en milisegundos.

Latencia, tiempo de respuesta y TTFB: ¿qué número es cuál?

La palabra se usa para tres cosas relacionadas, y las herramientas no coinciden:

  • Latencia de red: el tiempo de viaje entre dos máquinas, de ida o de ida y vuelta (RTT). Depende de la distancia y la ruta, no de tu código.
  • Latencia en JMeter: según su glosario, JMeter la mide "desde justo antes de enviar la petición hasta justo después de recibir la primera respuesta". El tiempo transcurrido (elapsed time) llega hasta que se recibe la última parte de la respuesta.
  • Time to first byte: la métrica http_req_waiting de k6 es el tiempo de espera de la respuesta, que el propio k6 llama TTFB. http_req_duration es envío más espera más recepción, y el establecimiento de la conexión se informa aparte. Consulta time to first byte.

El tiempo de respuesta es la espera completa hasta que la respuesta termina, que es lo que percibe el usuario. Al comparar dos informes, comprueba qué definición usa cada herramienta. El artículo del blog sobre el tiempo de respuesta en pruebas de rendimiento profundiza en ese lado.

De dónde viene la latencia

  • Establecimiento de la conexión. Según MDN, la primera petición incluye una consulta DNS, el handshake TCP y la negociación TLS. Las siguientes peticiones por la misma conexión evitan casi todo eso.
  • Distancia. Un usuario lejos del servidor paga más tiempo de ida y vuelta en cada paso. Una CDN lo acorta para el contenido que se puede cachear.
  • Trabajo del servidor. El código de la aplicación, las consultas a la base de datos y las llamadas a otros servicios aparecen como tiempo de espera antes del primer byte.
  • Colas bajo carga. Cuando las peticiones esperan una conexión, un hilo o un hueco en la base de datos libres, la latencia sube aunque cada tarea siga igual.
  • Tamaño de la descarga. MDN indica que el tiempo de recepción depende de la capacidad de la red y del tamaño del recurso.

Latencia y throughput

La latencia es lo que tarda una petición. El throughput (rendimiento) es cuántas peticiones completa el sistema por unidad de tiempo. Un sistema puede ser rápido para un usuario y hundirse con cien, así que hay que vigilar ambos a la vez. Cómo crece la latencia al aumentar la carga lo muestran las pruebas de carga y las pruebas de capacidad. El artículo cómo se relacionan throughput y tiempo de respuesta muestra la forma de esa curva.

Por qué los promedios esconden el problema

Imagina 99 peticiones de 100 ms y una de 30 segundos. El promedio ronda los 400 ms y parece aceptable, aunque un usuario esperó medio minuto. Los percentiles describen la distribución: p50 es la mediana, p95 significa que el 95 % de las peticiones fueron más rápidas y p99 que lo fueron el 99 %. El artículo de Google The Tail at Scale explica por qué las respuestas lentas poco frecuentes pesan más a medida que crecen los sistemas. Para el lado de las pruebas, lee por qué los percentiles superan a los promedios.

Ejemplo: un umbral de latencia en una prueba

En k6 puedes hacer fallar una ejecución cuando la cola se vuelve demasiado lenta. Las expresiones se evalúan al final de la prueba; si una es falsa, la prueba falla y k6 termina con un código distinto de cero:

thresholds: { http_req_duration: ['p(95) < 500', 'p(99) < 1000'] }

Las cifras son un ejemplo. Fija las tuyas según lo que necesiten tus usuarios y tu SLA, no según un valor por defecto.

Cómo medir y reducir la latencia

  • Mide desde donde están los usuarios. Las pruebas de carga de LoadFocus se ejecutan desde 25 regiones en la nube e informan de tiempo de respuesta, latencia, throughput, desviación estándar y los percentiles 50, 90 y 99, con umbrales de aprobado o fallo para P95 y P99. Una prueba desde una sola región dice poco sobre usuarios de otras zonas.
  • Vigílala en producción. La monitorización de APIs registra el tiempo de respuesta con una frecuencia programada (los checks gratuitos se ejecutan cada 5 minutos) y avisa cuando un endpoint supera un umbral de degradación. Las métricas que merece la pena seguir están en métricas de rendimiento de APIs. El caso práctico cómo reducir la latencia de una API muestra el flujo de trabajo.
  • Reduce el coste por petición. Reutiliza conexiones, cachea lo que puedas, sirve los archivos estáticos desde una CDN, usa menos nombres de host y arregla primero las consultas lentas.

Errores comunes

  • Informar solo del promedio.
  • Probar desde la misma región que el servidor y generalizar a todos los usuarios.
  • Comparar cifras de herramientas que definen la latencia de forma distinta.
  • Ignorar la primera petición, que carga con el coste de DNS, TCP y TLS.
  • Confundir un objetivo de latencia con uno de throughput.

Preguntas frecuentes: latencia

¿Qué es una buena latencia?

No hay un número universal. Depende del tipo de petición, del usuario y de tu SLA. Fija un objetivo sobre un percentil como p95, mídelo con carga realista y desde las regiones de tus usuarios, y endurécelo a medida que mejores.

¿Cuál es la diferencia entre latencia y tiempo de respuesta?

La latencia suele ser el retraso hasta que empieza la respuesta, o el tiempo de viaje por la red. El tiempo de respuesta es la espera completa hasta que la respuesta termina. Las herramientas definen ambos de forma algo distinta, así que consulta la documentación de la que uses.

¿Cuál es la diferencia entre latencia y ancho de banda?

La latencia es retraso. El ancho de banda es la cantidad de datos que la conexión puede transportar por segundo. Una descarga grande está limitada por el ancho de banda; una página con muchas peticiones pequeñas, por la latencia.

¿En qué se diferencia la latencia del TTFB?

El TTFB mide el tiempo hasta el primer byte de la respuesta, así que incluye la latencia de red más el tiempo de espera del servidor. Algunas herramientas, como JMeter, llaman latencia a ese número.

¿Por qué la latencia p99 es mayor que la p50?

La mayoría de las peticiones son rápidas y unas pocas son lentas por fallos de caché, recolección de basura, bloqueos o colas. El p99 muestra esas pocas, por eso es la cifra que conviene vigilar para las peores experiencias.

¿Qué tan rápido es tu sitio web?

Mejora su velocidad y SEO sin problemas con nuestra Prueba de Velocidad gratuita.

Prueba de velocidad de sitio web gratis

Analice la velocidad de carga de su sitio web y mejore su rendimiento con nuestro comprobador de velocidad de página gratuito.