Har*_*ons 6 python django performance multithreading multiprocessing
在开发部署在Apache mod_wsgi上的Django应用程序时,我发现在多线程(Python线程; mod_wsgi进程= 1个线程= 8)的情况下,Python将不会使用所有可用的处理器.使用多处理方法(mod_wsgi processes = 8个线程= 1)一切都很好,我可以完全加载我的机器.
所以问题是:这种Python行为是正常的吗?我怀疑它是因为使用少数线程的1进程是默认的mod_wsgi方法.
该系统是:
FreeBSD 7.2 AMD64和Python 2.6.4上的2xIntel Xeon 5XXX系列(8核(16个超线程))
谢谢大家的回答.我们都发现这种行为是正常的,因为GIL.这是一个很好的解释:http: //jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/ 或stackoverflow GIL讨论:什么是全局解释器锁(GIL)?.
Joh*_*ooy 10
Python会在线程模式下使用所有处理器吗?没有.
Python不会使用所有可用的处理器; 这种Python行为是否正常?是的,这是正常的,因为GIL.
有关讨论,请参阅http://mail.python.org/pipermail/python-3000/2007-May/007414.html.
您可能会发现,如果存在某些阻塞,每个核心/进程拥有一对(或4个)线程仍然可以提高性能,例如,等待来自数据库的响应会导致该进程阻止其他连接.
归档时间: |
|
查看次数: |
4396 次 |
最近记录: |