跳转到主要内容

Linux perf 工具

项目描述

此存储库包含一组Python脚本,通过利用Linux perf工具和从perf跟踪生成2个HTML仪表板,帮助调整任何Linux系统以实现性能和可扩展性。

基本仪表板展示了捕获时间所选所有任务的通用调度程序和KVM事件

  • CPU使用率与上下文切换图表

  • KVM退出类型分布堆叠条形图(每个任务的退出类型分布)

  • 核心映射摘要显示任务调度程序核心分配和上下文切换计数热图(每个核心的运行时间和上下文切换计数 - 包括每个核心和每个任务的总时间)

详细仪表板展示了任务级别的详细调度器和KVM事件

  • 上下文切换热图(上下文切换事件的时序分布)

  • KVM退出热图(KVM进入和退出事件的时序分布)

  • 时序核心图(任意给定任务在哪个核心上运行)

任务注释功能还允许生成跨运行图表(差异),有助于更容易地检测多个捕获/运行之间的行为差异。

捕获脚本围绕Linux perf工具包装,捕获感兴趣的事件(如上下文切换和KVM事件),并生成一个更紧凑的二进制文件,用于离线分析。

包括安装和用法说明的完整文档

http://perfwhiz.readthedocs.org/

perfwhiz 工作流程

以下图表说明了获取仪表板的两个阶段:捕获阶段(perfcap.py)和仪表板生成阶段(perfmap.py)。

images/perfwhiz.png

在测试系统中执行捕获,通过调用perfcap.py脚本来指定要捕获哪些任务的事件以及持续时间。每次捕获的结果是一个二进制文件(具有cdict扩展名,cdict代表压缩字典)。

然后可以将这些二进制文件提供给仪表板生成工具(perfmap.py),以生成相应的仪表板。此仪表板生成阶段通常在安装了perfmap的工作站(笔记本电脑、macbook等)上离线完成。生成的仪表板是HTML文件,可以使用任何浏览器查看。

依赖关系

当安装perfwhiz时,会自动安装依赖项(请参阅安装部分)。

捕获工具perfcap.py依赖于

  • Linux perf工具(带有python扩展编译)

  • pbr python包

  • msgpack python包

仪表板生成工具perfmap.py依赖于

  • pandas/numpy python包

生成的HTML仪表板包含将在浏览器中加载时从CDN服务器拉取一些JavaScript库的JavaScript代码(CDN是一个包含浏览器下载的库的公共服务器网络)。因此,查看这些仪表板需要访问互联网。仪表板需要以下JavaScript库

  • jquery

  • datatables

  • d3

  • angular

  • angular-ui-bootstrap

  • pako(zlib inflate)

许可

perfwhiz在Apache License,版本2.0(“许可”)下授权。您只能在使用许可的情况下使用此工具。您可以在https://apache.ac.cn/licenses/LICENSE-2.0获取许可副本。

除非适用法律要求或书面同意,否则在许可下分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。请参阅许可以了解许可下管理权限和限制的具体语言。

Perfwhiz在其分发中包含一个umsgpack.py副本(MIT许可)(https://github.com/vsergeev/u-msgpack-python,感谢vsergeev)

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息

源代码分发

perfwhiz-0.3.1.tar.gz (444.0 kB 查看哈希值)

上传时间 源代码

构建分发

perfwhiz-0.3.1-py2.py3-none-any.whl (51.9 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者