我有一个python进程(Pylons webapp),它不断使用10-30%的CPU。我将改进/调整日志记录以获得对正在发生的事情的一些了解,但在那之前,是否有任何工具/技术可以让我们看到python进程正在做什么,有多少以及它有多忙线程等?
更新
另一次更新:
经过多次修改,在各个地方坚持分析器并熟悉PasteScript内部,我发现如果应用程序启动时没有“--reload”参数,则常量CPU负载会消失(如果代码更改,此标志会告诉paster重新启动自身,生产环境很好。
答案 0 :(得分:7)
Profiling可能会帮助您了解它正在做的事情。如果您按“时间”对输出进行排序,您将看到哪些函数正在增加cpu时间,这应该会给您一些很好的提示。
答案 1 :(得分:6)
正如您所指出的,在--reload模式下,Paste会每秒扫描文件系统,以查看是否已加载任何已加载的文件。如果有,则粘贴重新加载该过程。如果需要,您也可以手动告诉Paste监视非Python代码模块的更改。
您可以使用--reload-interval选项更改重新加载时间间隔,这将减少使用--reload时的CPU使用率,因为它会减少扫描次数。