Calculadora de tamaño del pool de hilos: cuántos hilos necesitas según la ley de Little
Dimensiona un pool de hilos con la ley de Little a partir de las solicitudes por segundo y el tiempo de procesamiento, con una utilización objetivo que deja margen.
Cómo funciona
Ley de Little: concurrencia L = tasa de llegada λ × tiempo de servicio W · Hilos = ⌈L ÷ utilización objetivo⌉
La ley de Little dice que el número promedio de solicitudes en proceso al mismo tiempo es la tasa de llegada por lo que tarda cada una; ese producto es la cantidad mínima de trabajadores para no quedarte atrás. Pero un pool al 100% de utilización no tiene holgura para los picos y el tiempo en cola se dispara, así que divides entre una utilización objetivo (por ejemplo 80%) y redondeas hacia arriba a un número entero de hilos. En trabajo limitado por CPU, además, el pool no debería superar por mucho el número de núcleos; en trabajo limitado por E/S, la cifra ajustada es la guía.
Ejemplo resuelto
La API de pagos de Fernando recibe 800 req/s y cada solicitud tarda 25 ms. La concurrencia es 800 × 0.025 = 20 solicitudes en vuelo. Con una utilización objetivo del 75%, el pool debe tener 20 ÷ 0.75 = 26.67, redondeado a 27 hilos. Esos 27 hilos pueden procesar hasta 27 ÷ 0.025 = 1,080 req/s a tope, el margen sobre la carga de 800 req/s.
Preguntas frecuentes
¿Por qué no usar el pool al 100% de utilización?
Porque las solicitudes llegan en ráfagas, no de forma perfectamente pareja. Según la teoría de colas, cuando la utilización se acerca al 100% los tiempos de espera crecen sin límite; un objetivo del 70–80% mantiene estable la latencia y absorbe los picos.
¿Sirve para tareas limitadas por CPU?
La ley de Little sigue dando la concurrencia, pero un pool limitado por CPU no debería superar mucho el número de núcleos, porque los hilos de más solo cambian de contexto. En tareas limitadas por E/S (esperando red o disco), la cifra ajustada puede superar con creces los núcleos y es la meta correcta.
¿Qué es la ley de Little?
Es un resultado de la teoría de colas: el número promedio de elementos en un sistema (L) es igual a la tasa de llegada (λ) por el tiempo promedio que pasa cada uno dentro (W). Con 500 req/s y 20 ms por solicitud, L = 500 × 0.020 = 10 solicitudes simultáneas.
Calculadoras relacionadas
Esta calculadora tiene fines informativos. Verifica los resultados importantes antes de tomar decisiones.