使用Austin TUI在不降低性能的情况下监视正在运行的Python应用程序

2020-10-27 19:47:55

Python TUI是奥斯汀基于文本的顶级用户界面,用纯Python编写。最初的计划是作为一个样本应用程序来展示奥斯汀的用途,但由于非常受欢迎,它已经升级为一个成熟的项目。

标题以系统监视器的方式向您显示正在分析的应用程序的信息,比如它的PID、用于调用它的命令行,以及它正在使用的CPU和内存量的曲线图。

注意:为了使TUI工作,奥斯汀2二进制文件需要位于PATH环境变量中。请参阅Austin安装说明,了解如何在您的平台上轻松安装Austin。

一旦安装了Austin和Austin TUI,您就可以立即开始使用它们。如果要启动并剖析Python脚本,例如myscript.py,可以执行以下操作。

与奥斯汀一样,TUI也可以附加到正在运行的Python应用程序。要分析正在运行的WSGI服务器的所有进程的框架堆栈,例如,父进程的PID的gethold和do。

C选项将指示Austin查找Python子进程,您将能够使用箭头键在它们之间导航。

TUI基于python-curses。Python的标准Windows安装中包含的版本已损坏,因此无法开箱即用。解决方案是从该页面将端口的滚轮安装到Windows。轮子文件可以直接使用pip安装,如链接页面中所述。

默认情况下,Austin TUI在刷新UI时(大约每秒)显示每个进程和线程的上次看到的堆栈的统计信息。这类似于top对系统上所有正在运行的进程执行的操作。

如果您想要查看所有收集的统计数据,并将帧堆栈表示为有根的树,您可以按F键进入完整模式。最后看到堆栈将突出显示,以便您在此模式下也可以使用该信息。

查看正在运行的Python应用程序很不错,但在许多情况下,您可能希望保存收集的数据以供进一步脱机分析(例如,您可能希望将其表示为火焰图)。无论何时,只要您想要将收集的数据转储到文件中,您都可以按S键,工作目录中将为您生成一个包含所有样本的文件,该文件的前缀为ASTIN_,后跟一个时间戳。TUI将在右下角通知操作成功。

Austin TUI已经过Python3.6-3.9的测试,并且已知可以在Linux、MacOS和Windows上运行。

由于带有ElCapitan的MacOS中引入的系统完整性保护,Austin无法评测使用位于/bin文件夹中的可执行文件的Python进程,即使使用sudo也是如此。因此,可以从虚拟环境运行解释器,也可以使用安装在例如/Applications中的Python解释器,或者使用带有默认前缀(/usr/local)的BREW。不过,即使在这些情况下,也需要使用sudo。

如果你喜欢奥斯汀途易,并且发现它很有用,有很多方法可以让你做出贡献。

如果您想帮助开发,那么在您打开Pull请求之前,先看一看公开的问题,并看一看有助于开发的指导方针。

你也可以通过成为asonsor和/或给我买一杯BMC咖啡,或者在PayPal.me上捐几便士来为奥斯汀TUI的发展做出贡献。