Linux性能工具

perfwhiz的Python项目详细描述


此存储库包含一组python脚本,用于帮助优化任何linux 利用linuxperf工具和 从perf traces 2生成表示linux调度程序上下文开关的html仪表板 以及kvm事件。

基本仪表板演示了捕获时选定的所有任务的常规计划程序和kvm事件:

  • CPU使用率与上下文切换图表
  • KVM退出类型分布堆栈条形图(出口类型分布每任务)
  • 摘要coremap显示任务调度器核心分配和上下文切换计数热映射(每个任务上每个核心的运行时间%和上下文切换计数-包括每个核心和每个任务的总时间)

详细的仪表板演示了任务级别的详细计划程序和kvm事件:

  • 上下文切换热图(上下文切换事件的时间分布)
  • KVM退出热映射(KVM进入和退出事件的时间分布)
  • 时间coremaps(core在其上执行任何给定的任务并随时间推移)

任务注释特性还允许生成交叉运行图(diff),这有助于 跨多个捕获/运行更容易检测行为差异。

捕获脚本围绕着linux perf工具来捕获 兴趣(如上下文切换和kvm事件)并生成更多 用于脱机分析的压缩二进制文件。

完整的文档,包括安装和使用说明:

http://perfwhiz.readthedocs.org/

Perfwhiz工作流

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

images/perfwhiz.png

捕获是通过调用perfcap.py脚本在被测系统上执行的,并指定从哪些任务捕获事件以及捕获事件的时间。 每次捕获的结果是一个二进制文件(cdict扩展名为cdict,cdict表示压缩字典)。

随后,二进制文件可以提供给仪表板生成工具(perfmap.py)以生成相应的仪表板。 此仪表板生成阶段通常在安装PerfMap的工作站(笔记本电脑、MacBook…)上脱机完成。 生成的仪表板是可以使用任何浏览器查看的HTML文件。

依赖关系

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

捕获工具perfcap.py取决于:

  • linux perf工具(使用python扩展编译)
  • pbr python包
  • msgpack python包

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

  • pandas/numpython包

生成的html仪表板包含javascript代码,这些代码将从cdn服务器中提取一些javascript库。 当加载到浏览器中时(CDN是一个包含由浏览器下载的库的服务器的公共网络)。 因此,查看这些仪表板需要访问Internet。 仪表板需要以下javascript库:

  • jquery
  • 数据表
  • D3
  • 角度
  • 角度用户界面引导
  • PAKO(ZLIB充气)

许可

perfwhiz是在apache许可2.0版(“许可”)下获得许可的。 除非符合许可证,否则您不能使用此工具。 你可以在 http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

perfwhiz在i中包含umsgpack.py(mit许可证)的副本TS分布 (https://github.com/vsergeev/u-msgpack-python,非常感谢vsergeev)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
NetBeans中的Java Swing滚动窗格   java如何与具有复合键的表建立关系?   Android中读取文件时java数据丢失   java黄瓜场景。embed在ubuntu机器上不工作?   java从spring mvc控制器操作中,我如何获得请求/响应的访问权限?   java减去两个长值   java选择下一个值firebase 安卓   用于起始和结尾连字符的java正则表达式   Java正则表达式解释   java Lifefay freemarker ADT:方法不可用?   java我怎样才能让我的开关盒作用于JFrame?   java在我的场景中使用连接池的理想方式是什么   java我如何接受jsoup的cookies?   java如何将整数数组更改为字符串数组?   java Android操作\u指针\u向上直到剩余触摸移动时才调用   java为什么gradle会出错?   io如何在java中复制/拆分输入流?   java使JButton不可见,但尊重其原始空间   java Spring提交表单获取复选框值不起作用