Tema representativo de entrevista

¿Cómo se utiliza la ley de Little para la concurrencia de servicios y la capacidad de colas?

GeneralIntermedio
Equipo editorial de Offer.ccPublicado Actualizado

Pregunta

Una API promedia 200 req/s y 150 ms de latencia de extremo a extremo. Estime el número promedio de solicitudes en el sistema y luego explique cómo ayuda la fórmula a establecer límites de concurrencia, detectar acumulaciones (backlog) y validar la capacidad.

1. Pregunta

Un servicio asíncrono de procesamiento de pedidos se vuelve más lento durante el tráfico pico. La monitorización muestra un throughput estable cercano a 200 req/s y una latencia promedio de extremo a extremo cercana a 150 ms. Utilice la ley de Little para estimar las solicitudes en curso (in-flight), explique la relación entre latencia, throughput y colas, y proponga acciones de ingeniería que eviten un backlog inestable.

2. Restricciones y aclaraciones

  • La ley de Little describe un promedio a largo plazo para un sistema estable: L = λW, donde L es el trabajo promedio en el sistema, λ es el throughput promedio y W es el tiempo promedio en el sistema.
  • Especifique la ventana de medición, el límite de la solicitud y las unidades; una ráfaga corta o un sistema inestable no pueden tratarse como un promedio a largo plazo.
  • Separe el tiempo de servicio, el tiempo de cola y el tiempo de permanencia de extremo a extremo, o el dimensionamiento de la concurrencia y del thread-pool se subestimará.
  • Aclare los límites de capacidad, la política de timeouts, las prioridades y el trabajo que puede descartarse.

3. Derivación principal

Multiplicar 200 req/s por 0.15 s da L = 30 solicitudes en el sistema en promedio. Esto no es un máximo de 30 solicitudes ni la concurrencia p99; es el inventario promedio para esa ventana. Si el throughput se mantiene constante mientras el tiempo promedio de permanencia se duplica, el trabajo en curso promedio también se duplica, lo que generalmente indica una cola creciente o una dependencia más lenta.

4. Análisis de referencia

text
lambda = 200          # requests / second
W = 0.150             # seconds / request
L = lambda * W        # 30 requests in the system on average

if arrival_rate > sustainable_service_rate:
  queue grows without a stable bound
  apply_admission_control_or_scale_out()

capacity = concurrency_limit / target_latency

Mida cuándo el trabajo entra en una cola, comienza a procesarse y se completa. La ley de Little puede estimar un límite aproximado de capacidad: con un límite de concurrencia de 100 y un objetivo de tiempo de permanencia promedio de 200 ms, el throughput estable es de aproximadamente 500 req/s. Deje margen para la latencia de cola (tail latency), las ráfagas y el jitter de dependencias.

5. Casos de sobrecarga y compensaciones (trade-offs)

Cuando la tasa de llegada se mantiene por encima de la tasa de servicio, la cola crece, W aumenta y L aumenta, creando un bucle de retroalimentación de timeouts y reintentos. Una cola sin límites solo retrasa el fallo; el trabajo puede ser inútil cuando finalmente se complete. Utilice colas acotadas (bounded queues), comportamiento fail-fast, prioridades, descarte de carga (load shedding), contrapresión (backpressure) o escalado horizontal. Cada política debe establecer qué trabajo se descarta y cómo se informa a los emisores.

6. Verificación y observabilidad

  • Registre la tasa de llegada, la tasa de finalización, el trabajo en curso y la latencia promedio más p95/p99 por ventana de tiempo.
  • Realice una comprobación cruzada de tres mediciones independientes de L, λ y W para detectar errores de unidades o de límites de muestreo.
  • Ejecute una prueba de carga controlada que incremente la tasa de llegada gradualmente y observe la longitud de la cola, la tasa de timeouts y el tiempo de recuperación.
  • Genere alertas sobre la profundidad de la cola, la antigüedad, la concurrencia, la tasa de rechazo y los reintentos; verifique qué tan rápido caen después de escalar o descartar carga.

7. Errores comunes

  • Tratar L promedio como un límite estricto de concurrencia e ignorar ráfagas, latencia de cola y distribuciones de colas.
  • Utilizar el tiempo de servicio en lugar de W de extremo a extremo y omitir esperas de red, de bloqueos (locks) y de dependencias.
  • Inferir la capacidad a largo plazo a partir de una muestra corta antes de que el sistema sea estable.
  • Escalar consumidores sin limitar a los productores, dejando dependencias compartidas o colas downstream sobrecargadas.

8. Puntos de evaluación para la entrevista

Sustituye en la fórmula correctamente

El candidato mantiene la coherencia de las unidades, calcula 200 × 0.15 = 30 y explica que este es el trabajo promedio en curso en lugar de un límite.

Define los límites temporales

El candidato separa el tiempo de cola, de servicio y de extremo a extremo, y establece la ventana de muestreo y la suposición de estabilidad.

Reconoce la retroalimentación por sobrecarga

El candidato explica cómo una tasa de llegada superior a la de servicio amplifica la cola, la latencia, los reintentos y la concurrencia, y luego propone controles acotados.

Valida la capacidad con datos

El candidato utiliza pruebas de carga, p95/p99, antigüedad de la cola, tasa de rechazo y tiempo de recuperación en lugar de reportar un único número promedio.

Fuentes públicas

Preguntas relacionadas