我的表演基准工作流程

2021-06-20 23:14:02

基准计算机系统是耗时的,因为建立了这些环境涉及大量的工作。随着时间的推移,我建立了一个工作流程,减轻了建立基准的成本,并允许我更有效地分析单反形象。这篇博客文章涵盖了我的工作流程为2021。

性能调查通常遵循以下步骤:转到步骤3,直到达到所需的基准结果,保持这些优化帮助。

这是一个漫长的过程,暂停/恢复或再次复制。手动设置硬件和软件是耗时和错误的。因此,我们不想做一次不止一次。由于环境的差异,存在对另一台机器上的基准复制的风险将无法产生相同的结果。

高度开销过程的结果是,我们最小化他们的使用,因为我们不能经常像我们一样经常运行过程。这意味着我们无法回答我们' d的所有绩效问题,因此我们的理解是有限的。我们无法发现使我们能够进行性能改进的所有真理。

仅设置硬件和软件一次,并在按钮的按钮中再次返回到该状态。

存储基准结果,以便每次运行都可以在未来进一步分析。

转到步骤2修改环境(例如,将概念验证修补程序应用于软件)并重复。

由于绩效调查被捕获在Git分支中,而且在没有失去历史的情况下,易于切换到另一个调查。

这实际上是我做的! Git提供存储和时间机器功能,以便轻松暂停/恢复或复制性能调查。

ANSIBLE提供了将硬件和软件置于所需状态所需的自动化系统,以进行基准测试。 Ansible' S杀手功能是用于处理安装包的任务,配置虚拟机和容器等的大型生态系统。我发现ansible比python或shell脚本更高效,感谢Ansible' s模块集合。

我在Virt-任务中开始收集Linux KVM开发的Ansible任务。如果您'重新想知道运行基准的配置如上样子,这里是一个构建Qemu和客户内核的Ansible PlayBook,创建Fedora 34虚拟机,运行FIO盘I / O基准,并收集结果:

--- - 主机:主机任务: - include_tasks:tasks / build-qemu.yml vars: - 回购:https://gitlab.com/qemu-project/qemu.git - 版本:v6.0.0 - 名称:创建磁盘图片include_tasks:任务/ virt-builder-create-image.yml vars:--os_version:fedora-34 - 大小:32g - 输出:/var/lib/libvirt/images/test.img - 格式:raw - name:build guest内核include_tasks:任务/ build-kernel.yml vyml名称:测试状态:shutdown ignore_errors:yes - name:start vm include_tasks:任务/ start-vm.yml vars: - XML:" {{查找('文件&#39 ;,'文件/的test.xml')}}" - 主机:192.168.122.192 - 主机:VMS任务: - 名称:安装FIO和rsync DNF:状态:当前名称: - fio - rsync - 名称:运行fio脚本:files / fio.sh - 名称:获取fio输出文件同步:SRC:FIO-Output / DEST:笔记本/ FIO-Output / Poll_source-Off模式:拉 - 姓名:运行FIO脚本:文件/ fio.sh -Enable - 名称:获取FIO输出文件同步:SRC:FIO输出/ dest:笔记本/ fio-output / poll_source-on模式:pull - hosts:hosts任务: - 名称:stop vm adv:name:test状态:关机

一个重要的一点是Ansible PlayBook设置完整环境,运行所有基准,并收集结果。与运行单个基准测试的PlayBook不同,此一个运行全套套件,以便PlayBook捕获产生结果的整个环境。在调整基准配置或尝试概念验证优化时,这种区别非常重要。每个Git提交都需要包含完整的环境,以便性能调查是可重复的,并可在将来恢复。

我最近开始使用jupyterlab笔记本电脑进行数据分析。它为绘制结果提供了一个方便的环境,并在文档中组织它们。

感谢jupyter容器图像的官方jupyter容器图像,您可以使用只需一个命令运行的完整Python数据分析环境:

到目前为止,我只划伤了jupyterlab的表面。它适用于可视化数据,尽管我当前使用的方式与写Python Matplotlib脚本并从命令行运行它并不大。在时间我和#39; LL对其优势和劣势来更好地欣赏。

基于GIT的工作流程,自动化基准设置和存储结果可以很长的路要减轻性能调查的高度开销。如果i' m中断或需要切换到不同的机器'很容易恢复调查。具有存储在一起的环境的结果和细节使得可以在将来重新审视基准运行以重现或调整它们。 git,ansible和jupyter的组合很好地实现了这个工作流程,但如果你熟悉其他工具i'喜欢听到!