代码之家  ›  专栏  ›  技术社区  ›  Paul McMillan

在无负载条件下使用flup/fastcgi CPU

  •  1
  • Paul McMillan  · 技术社区  · 17 年前

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

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

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

    我不会对Django做任何荒谬复杂的事情,绝对不需要扩展处理。我知道这不是很多负载,但是如果这是我引入的一个bug,我想修复它。

    2 回复  |  直到 17 年前
        1
  •  2
  •   Gabriel Hurley    17 年前

    我在django上看到过这个,在slicehost(django 1.1,python 2.6)和dreamhost(django 1.0,python 2.5)上以fastcgi运行,我可以这样说:

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

    运行 ps aux 启动django应用程序后的命令显示类似于您描述的内容, 然而 这实际上是误导。从Ubuntu PS手册页:

    CPU使用率当前表示为 运行所花费的时间百分比 在整个生命周期内 过程。这不太理想,而且 不符合以下标准: 否则PS符合。CPU使用情况 不太可能达到100%。

    基本上,%cpu列由 ps 实际上是一个 平均的 随着时间的推移,进程一直在运行。你看到的衰退是由于高初始峰值,然后随着时间的推移,不活动被平均化。

        2
  •  0
  •   math    17 年前

    如果没有要处理的请求,那么快速的CGI线程不能消耗任何(明显的)CPU。

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