我通过flup将Django作为线程化的fastcgi运行,由lighttpd提供服务,通过套接字进行通信。
在无负载的情况下,每个fastcgi线程的预期CPU使用率是多少?在启动时,每个线程以3-4%的cpu使用率运行一段时间,然后在几个小时内回退到.5%左右。它不会降到这个水平以下。
这是正常的CPU使用率吗?我的代码中是否有一些bug导致空闲循环需要更多的处理?当进程完全空闲时,我预计它不会使用可测量的CPU。
我没有用Django做任何非常复杂的事情,绝对没有需要扩展处理的东西。我意识到这并不是很大的负载,但是如果这是我引入的一个bug,我想修复它。
发布于 2009-10-07 11:48:17
我在django上看过,在Slicehost (django 1.1,python 2.6)和Dreamhost (django 1.0,python 2.5)上都以fastcgi的身份运行,我可以这样说:
运行top命令显示,进程使用大量CPU来启动大约2-3秒,然后几乎立即下降到0。
在启动django应用程序后运行ps aux命令,显示的内容类似于您所描述的,这实际上是误导。从ps的Ubuntu手册页:
CPU使用率当前表示为在进程的整个生命周期中运行所花费的时间百分比。这并不理想,而且它不符合ps在其他方面所遵循的标准。CPU使用率不太可能完全达到100%。
基本上,ps显示的%CPU列实际上是进程运行时间的平均值。您看到的衰减是由于高初始峰值,随后是随着时间的平均不活动。
发布于 2009-10-06 16:27:19
如果没有请求要处理,快速cgi线程不能消耗任何(明显的) CPU。
您应该调查您所描述的负载。我使用相同的架构,我的线程完全是空闲的。
https://stackoverflow.com/questions/1522844
复制相似问题