在空载条件下使用flup / fastcgi cpu

时间:2009-10-05 23:02:18

标签: python django fastcgi lighttpd flup

我通过flup运行Django作为线程fastcgi,由lighttpd服务,通过套接字进行通信。

空载时每个fastcgi线程的预期CPU使用率是多少?在启动时,每个线程运行3-4%的CPU使用一段时间,然后在几个小时内回退到大约0.5%。它不会低于这个水平。

这个CPU使用率是否正常?我的代码中是否有一些错误导致空闲循环需要比它应该更多的处理?我希望该进程在完全空闲时不使用可测量的CPU。

我没有做任何与Django荒谬复杂的事情,绝对不需要扩展处理。我意识到这不是很多负载,但如果它是我介绍的错误,我想解决它。

2 个答案:

答案 0 :(得分:2)

我在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列在进程运行时实际上是平均值。你看到的衰退是由于高的初始峰值,随后是不活动的平均值。

答案 1 :(得分:0)

如果没有要处理的请求,你的fast-cgi线程不得使用任何(明显的)CPU。

您应该调查您描述的负载。我使用相同的架构,我的线程完全空闲。