Al desarrollar una aplicación Django implementada en Apache mod_wsgi encontré que en caso de subprocesamiento múltiple (procesos Python, procesos mod_wsgi = 1 hilos = 8) Python no usará todos los procesadores disponibles. Con el enfoque de multiprocesamiento (mod_wsgi processes = 8 threads = 1) todo está bien y puedo cargar mi máquina al máximo.¿Python usará todos los procesadores en el modo de subprocesos?
Entonces la pregunta: ¿este comportamiento de Python es normal? Lo dudo porque usar 1 proceso con pocos hilos es el enfoque predeterminado de mod_wsgi.
El sistema es:
serie 2xIntel Xeon 5XXX (8 núcleos (16 con hyperthreading)) en FreeBSD 7.2 AMD64 y Python 2.6.4
Gracias a todos por respuestas. Todos encontramos que este comportamiento es normal debido a GIL. Aquí hay una buena explicación: http://jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/ o stackoverflow GIL discussion: .
¿por qué esta pregunta tiene tres votos favorables? una simple búsqueda en Google hubiera sido suficiente. – aaronasterling
@aaronasterling: Nos gusta hacer de stackoverflow una gran base de datos de conocimiento con preguntas simples y respuestas simples. Asegúrese de que esta información esté disponible si su STFG – HardQuestions