1

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

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

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

我没有用 Django 做任何复杂得可笑的事情,绝对没有什么需要扩展处理的。我意识到这不是很多负载,但如果这是我引入的错误,我想修复它。

4

2 回答 2

2

我已经在 Slicehost(django 1.1,python 2.6)和 Dreamhost(django 1.0,python 2.5)上作为 fastcgi 运行的 django 上查看了这个,我可以这样说:

运行top命令显示进程使用大量 CPU 启动约 2-3 秒,然后几乎立即降到 0。

在启动 django 应用程序后运行该ps aux命令会显示与您描述的内容类似的内容,但这实际上具有误导性。来自 ps 的 Ubuntu 手册页:

CPU 使用率目前表示为在进程的整个生命周期中运行所花费的时间百分比。这并不理想,并且不符合 ps 在其他方面符合的标准。CPU 使用率加起来不太可能达到 100%。

基本上,显示的 %CPU 列ps实际上是进程运行时间的平均值。您看到的衰减是由于较高的初始峰值,然后是随着时间的推移平均不活动。

于 2009-10-07T11:48:17.213 回答
0

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

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

于 2009-10-06T16:27:19.243 回答