研究python进程,看看是什么在侵蚀CPU

2024-06-07 02:48:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python进程(Pylons webapp)经常使用10-30%的CPU。我将改进/优化日志记录,以了解正在发生的事情,但在此之前,是否有任何工具/技术允许查看python进程在做什么、它有多少线程以及它有多忙等等?在

更新:

  • 配置的访问日志显示没有正在进行的请求,webapp只是处于空闲状态
  • 没必要插进去粘贴.profile在中间件链中,由于没有请求,活动必须发生在webapp的工作线程或粘贴web服务器中
  • 像这样运行paster:“python-mcprofile-o outfile/usr/bin/paster serve开发ini“检查结果显示大部分时间都花在”posix.waitpid位置". 粘贴器在子进程中运行webapp,探查器不会拾取子进程活动
  • 研究;破解PasteScript“serve”命令,以便对子进程进行分析

另一个更新:

经过大量的修补,在不同的地方粘贴profiler并熟悉了PasteScript的内部,我发现如果在没有“--reload”参数的情况下启动应用程序,恒定的CPU负载就会消失(这个标志告诉paster,如果代码发生变化,就重新启动自己,便于开发),这在生产环境中是很好的。在


Tags: 工具进程粘贴状态记录cpu事情线程
2条回答

Profiling可能会帮助您了解它在做什么。如果按“时间”对输出进行排序,您将看到哪些函数占用了cpu时间,这应该会给您一些很好的提示。在

如您所述,在重新加载模式下,Paste每秒都会扫描文件系统,以查看加载的任何文件是否已更改。如果有,则粘贴将重新加载进程。如果需要,还可以手动告诉Paste监视非Python代码模块的更改。在

您可以使用reload interval选项更改重新加载间隔,这将减少使用reload时的CPU使用率,因为它的扫描频率较低。在

相关问题 更多 >