我有以下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快速入门是否正在做类似于在幕后等待的事情。
答案 0 :(得分:1)
我真的不认为你应该担心它。此外,您还不必在生产中使用quickstart()
。关注here使用带有uwsgi
模块的Cherrypy进行制作。它更快更轻。
答案 1 :(得分:1)
CherryPy在后台执行的一件事是检查文件和导入的模块中的更改,然后重新执行该过程。使用cherrypy.config.update({'engine.autoreload.on' : False})
关闭自动重新加载程序会占用较少的CPU。对我来说,CPU使用率从1.5%下降到不足0.3%。