首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生产环境中统计性能测量工具

生产环境中统计性能测量工具
EN

Software Recommendation用户
提问于 2017-08-02 08:52:35
回答 2查看 147关注 0票数 7

我在生产环境中寻找一个统计性能度量的工具。

我想知道Python解释器大部分时间都在做什么。换句话说,我想探测热点。

我想观察几个小时的生产环境。

稍后,我想总结一下解释器花费的时间最多的地方。

所需特征:

  • 开放源码,没有像GPL这样的病毒许可
  • 因为我想检查我的生产环境,所以性能影响很小。
  • 适合Python和web环境(我们使用Django)。
EN

回答 2

Software Recommendation用户

发布于 2018-03-13 15:33:53

PyFlame看起来不错:https://github.com/uber/pyflame

从医生那里:

Python的Ptracing是一个高性能的分析工具,它为Python生成火焰图。Py焰是在C++中实现的,它使用Linux (2)系统调用来收集分析信息。它可以在没有显式插装的情况下获取Python调用堆栈的快照,这意味着您可以在不修改其源代码的情况下对程序进行分析。Pyflame能够分析嵌入式Python解释器,如uWSGI。它完全支持分析多线程Python程序。Pyflame通常比内置配置文件(或cProfile)模块引入的开销要小得多,并且会释放更丰富的分析数据。分析开销足够低,您可以使用它来分析生产中的活动过程。

票数 1
EN

Software Recommendation用户

发布于 2017-08-14 07:48:21

此工具可能会有所帮助:https://github.com/guettli/live-trace

活迹

live-trace是一个Python库,它以每秒N次的速度在守护进程线程中记录正在运行的应用程序的堆栈跟踪。可以对日志文件进行分析,以查看解释器大部分时间花费在哪里。它被称为“实时跟踪”,因为它可以在生产系统上使用,而不会对性能产生明显的影响。

如果您想了解特定请求为什么慢,请使用分析器,而不是实时跟踪。

如果你想看鸟瞰的话,可以使用实时跟踪。如果你问自己这个问题:

翻译整天在做什么?

然后在生产环境中使用实时跟踪。让它收集大量解释器状态的管理主机。当前实现使用堆栈跟踪来冻结解释器的状态。运行几个小时后,您可以聚合收集到的堆栈跟踪并识别热点。

这个问题的背景和答案在“软件推荐”

我写了这个工具“实时跟踪”,并问这里是否有这样的工具。

我这样做了,因为我对当前的实时跟踪的实现不太满意。如果解释器在c++扩展中执行了大量代码,那么结果是不可靠的。如果主线程位于c扩展中,守护进程线程无法记录堆栈跟踪(除了GIL的发布,如这里所解释的线程状态和吉尔)。

解决这个问题的方法是第二个通过gdb收集堆栈跟踪的过程。或者更好的解决办法我至今还没有找到..。

票数 0
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/44914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档