Cuando ejecuto una secuencia de comandos de Python dentro de un contenedor de Docker, completa un ciclo de ejecución en aproximadamente 1 minuto. Ahora, cuando giro 2 contenedores más desde la misma imagen y ejecuto scripts de Python dentro de ellos, todo se ralentiza y comienza a requerir 5-6 minutos por ciclo.
Ninguno de los scripts está vinculado a recursos; hay muchos núcleos de RAM y CPU inactivos. Esto sucede cuando se ejecutan 3 contenedores en un sistema Xeon Phi de 64 núcleos.
Entonces, ¿Docker comparte un bloqueo Python GIL común entre todos los contenedores? ¿Cuáles son mis opciones para separar los GIL, de modo que cada proceso se ejecute a su máxima velocidad potencial?
¡Gracias!
Entonces, ¿Docker comparte un bloqueo Python GIL común entre todos los contenedores?
NO.
El GIL es por proceso de Python, un contenedor Docker puede tener 1 o varios procesos de Python, cada uno con su propio GIL.
Si no utiliza subprocesos múltiples, ni siquiera debería conocer el GIL. ¿Estás usando hilos en absoluto?