El gestor de paquetes Bun ha implementado una mejora significativa en el manejo de la CPU dentro de contenedores, abordando un problema de rendimiento crítico. La actualización, fusionada recientemente, modifica la forma en que Bun determina el número de núcleos de CPU disponibles, especialmente en entornos Linux que utilizan contenedores como Docker o Kubernetes. Anteriormente, Bun reportaba incorrectamente el número total de núcleos del host, lo que provocaba un uso excesivo de hilos y, en consecuencia, una desprogramación frecuente del contenedor y una latencia elevada.
La solución implica la integración de WTF::numberOfProcessorCores(), una función de WebKit, que ahora considera la cuota de CPU asignada a través de cgroups (control groups). Esto permite que Bun ajuste dinámicamente el número de hilos que utiliza, limitándolo al número de núcleos asignados al contenedor. La actualización afecta a funciones clave como navigator.hardwareConcurrency, os.availableParallelism() y bun.getThreadCount(), optimizando el rendimiento y la estabilidad de Bun en entornos de contenedores. Aunque la solución no aborda el problema de redimensionamiento en tiempo real de cgroups (como el escalado vertical en Kubernetes), representa un avance importante para la eficiencia de Bun en entornos virtualizados.
