Linux perf 工具
项目描述
此存储库包含一组Python脚本,通过利用Linux perf工具和从perf跟踪生成2个HTML仪表板,帮助调整任何Linux系统以实现性能和可扩展性。
基本仪表板展示了捕获时间所选所有任务的通用调度程序和KVM事件
CPU使用率与上下文切换图表
KVM退出类型分布堆叠条形图(每个任务的退出类型分布)
核心映射摘要显示任务调度程序核心分配和上下文切换计数热图(每个核心的运行时间和上下文切换计数 - 包括每个核心和每个任务的总时间)
详细仪表板展示了任务级别的详细调度器和KVM事件
上下文切换热图(上下文切换事件的时序分布)
KVM退出热图(KVM进入和退出事件的时序分布)
时序核心图(任意给定任务在哪个核心上运行)
任务注释功能还允许生成跨运行图表(差异),有助于更容易地检测多个捕获/运行之间的行为差异。
捕获脚本围绕Linux perf工具包装,捕获感兴趣的事件(如上下文切换和KVM事件),并生成一个更紧凑的二进制文件,用于离线分析。
包括安装和用法说明的完整文档
perfwhiz 工作流程
以下图表说明了获取仪表板的两个阶段:捕获阶段(perfcap.py)和仪表板生成阶段(perfmap.py)。
在测试系统中执行捕获,通过调用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)
链接
Gitter聊天室:https://gitter.im/cisco-oss-eng/perfwhiz
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源代码分发
构建分发
perfwhiz-0.3.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9910d144f7d1b1090b3dd65dc43fa5161dd5c9208acfa87c0269d0eca04fa2c4 |
|
MD5 | 586b0e42c1dd7831516cc302f34d983b |
|
BLAKE2b-256 | 6027b91757881cbbdcd0f93e0cdc7be334b7e5f06ae11a9ae316fde45c043603 |
perfwhiz-0.3.1-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 95f1250d1cfa757e34bc5ba2244b875b0321e7e99ee20256f0671651f9b6dc89 |
|
MD5 | d026ef153e6177ae3deed1205b5c2733 |
|
BLAKE2b-256 | 140445705bf2a8bfd4d396ba381dc31b2f364ff3499190fd408f753b3088c1db |