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第三方库


热门话题
用setter将对象转换为java中的映射   java如何通过JQL直接找到多对多实体的交集?   java Android文本检查帮助   纸牌游戏中的java玩家顺序   java从活动A移动到活动B,再从活动B返回到活动A   java如何在GAE servlet中保存JSON文件以满足Android客户端的请求?   连接到本地主机上的SLiM服务器时发生java错误:8080   java是否可以使用setOnMarkerClickListener对for循环中创建的各种标记产生不同的结果?   检查数字是否为回文的java逻辑   java在两个独立的服务中是否存在数据同步模式?   java在组合框中选择ascendingorder时如何对元素列表进行排序   java如何在不更新旧表的情况下更新表中的字段并将其插入新表   javasos和return语句   java与示例安卓活动建立解析连接。错误:任务“:app:dexDebug”的执行失败   java Maven发布问题,带有代理授权的分叉部署过程,因为参数失败,需要407代理授权