Cherrypy快速入门在空闲时消耗高CPU使用率

时间:2017-08-25 19:44:42

标签: python cpu-usage cherrypy

我有以下CherryPy快速入门示例:

import cherrypy

class HelloWorld(object):
    @cherrypy.expose
    def index(self):
        return "Hello world!"

if __name__ == '__main__':
    cherrypy.quickstart(HelloWorld())

我发现如果我让它继续运行,它始终接近top输出的顶部。例如,我让它运行过夜(而不是24小时),这是从顶部开始的行:

PID  USER      PR   NI VIRT    RES     SHR  S  %CPU  %MEM   TIME+      COMMAND 
8284 pi        20   0  126212  13868   5792 S  7.2   3.1    112:51.88  python

在此期间服务器没有通过REST进行交互,只是闲置。这种高CPU使用率的任何原因,或防止它的解决方法?

它可能不相关,但下面的python代码也使用了很多CPU:

while True:
    pass

它使用了很多 more CPU(也许是这样),但它让我想知道CherryPy快速入门是否正在做类似于在幕后等待的事情。

2 个答案:

答案 0 :(得分:1)

我真的不认为你应该担心它。此外,您还不必在生产中使用quickstart()。关注here使用带有uwsgi模块的Cherrypy进行制作。它更快更轻。

答案 1 :(得分:1)

CherryPy在后台执行的一件事是检查文件和导入的模块中的更改,然后重新执行该过程。使用cherrypy.config.update({'engine.autoreload.on' : False})关闭自动重新加载程序会占用较少的CPU。对我来说,CPU使用率从1.5%下降到不足0.3%。