L = λ × W
La ecuación más útil en la planificación de capacidad
Para cualquier cola estable, independientemente de su estructura interna: L = λ × W, donde:
- L = número promedio de elementos en el sistema (en proceso o esperando)
- λ (lambda) = tasa promedio de llegada (elementos por unidad de tiempo)
- W = tiempo promedio que cada elemento pasa en el sistema
La lectura geométrica: traza λ en un eje y W en el otro. El producto L es el área del rectángulo que forman. La planificación de capacidad reside dentro de este rectángulo.
Por qué es importante: cualquier dos de las tres cantidades determinan la tercera. Mide el rendimiento y la latencia, y conoces la ocupación. Mide la ocupación y el rendimiento, y conoces la latencia. La ley es robusta: se aplica a solicitudes web, mesas de restaurante, colas de supermercado y pipelines de CPU sin modificación.
Tres ejemplos concretos:
- Un servicio web maneja 200 req/s con una latencia promedio de 50 ms (0,05 s). L = 200 × 0,05 = 10 en vuelo.
- Una cafetería atiende a 60 clientes/hora con un tiempo de permanencia promedio de 15 minutos (0,25 h). L = 60 × 0,25 = 15 clientes dentro.
- Un grupo de servidores de backend maneja 1500 req/s con una latencia promedio de 200 ms (0,2 s). L = 1500 × 0,2 = 300 en vuelo.
Implicación para el dimensionamiento: la cantidad de trabajadores / hilos / conexiones de una capa debe ser al menos L para mantenerse al día. Cualquier cantidad menor significa crecimiento de la cola.
Por qué la latencia se dispara al superar el 80% de utilización
La curva más importante en operaciones
Grafique la utilización en el eje x (0% a 100%) y el tiempo de espera promedio en el eje y. La forma es una de las curvas más determinantes en la planificación de capacidad.
El modelo de colas M/M/1: para un sistema con llegadas de Poisson (aleatorias) y tiempos de servicio exponenciales (aleatorios), el tiempo de espera promedio es:
W_q = ρ / (μ × (1 - ρ))
donde ρ es la utilización (de 0 a 1) y μ es la tasa de servicio.
La forma de la curva:
- Con ρ = 0.5 (50% de utilización), el tiempo de espera es pequeño (1 tiempo de servicio).
- En ρ = 0.7 (70% de utilización), el tiempo de espera es de ~2.3 tiempos de servicio.
- En ρ = 0.8 (80% de utilización), el tiempo de espera es de ~4 tiempos de servicio.
- En ρ = 0.9 (90% de utilización), el tiempo de espera es de ~9 tiempos de servicio.
- En ρ = 0.95 (95% de utilización), el tiempo de espera es de ~19 tiempos de servicio.
- En ρ = 1.0 (100% de utilización), el tiempo de espera es infinito.
La rodilla: alrededor del 80% de utilización, la curva se curva bruscamente. Por debajo de la rodilla, la capacidad es cómoda; por encima, la latencia aumenta más rápido que la utilización.
Lectura práctica: apuntar a una utilización del 70% para el estado estacionario, nunca al 100%. El 30% de 'margen' no es desperdicio; es el precio de una latencia acotada.
Dimensionamiento más allá de la rodilla
Dos escenarios:
Escenario A: 10 réplicas funcionando al 60 % de CPU. Latencia p99 = 100 ms.
Escenario B: la misma flota funcionando al 90 % de CPU debido al crecimiento del tráfico. p99 = 600 ms.
Misma flota, mismo código, solo cambió la utilización.
Dimensionar y activar en conjunto
Síntesis
Ahora puedes aplicar la Ley de Little como un rectángulo, leer la curva de colas y su punto de inflexión, y conectar ambos con las decisiones de capacidad.
Aplica ambos.
Un nivel de backend maneja 2.000 req/s con una latencia promedio de 50 ms por réplica, con una capacidad de 80 req/s al 70% de CPU. Factor de pico de 2x; deseas sobrevivir a 3 fallas simultáneas de réplicas.
Notas complementarias
Notas complementarias
Esta lección de geometría reformula la lección principal de Escala Horizontal Sin Estado como geometría cuantitativa.
El siguiente complemento, geometry_of_ingress_egress_separation, reformula la división del límite de red como un grafo bipartito con un vértice de corte que la división elimina.
Bien hecho.