Linux 服务器的基准测试:一系列开放工具

我们继续讨论用于评估 Linux 机器上的 CPU 性能的工具。 今天的材料:temci、uarch-bench、likwid、perf-tools 和 llvm-mca。

更多基准:

Linux 服务器的基准测试:一系列开放工具
Фото— 卢卡斯·布拉泽克 — 不飞溅

特姆吉

这是一个用于估计两个程序的执行时间的工具。 本质上,它允许您比较两个应用程序的执行时间。 该实用程序的作者是一位来自德国的学生 Johannes Bechberger,他在 2016 年将其开发为本科论文的一部分。 今天的工具 分发者 根据 GNU 通用公共许可证获得许可。

约翰内斯想要创建一种工具,使他能够在受控环境中测量计算系统的性能。 因此,temci的主要功能之一就是能够搭建测试环境。 例如, 人们可以:更改CPU频率管理器设置,禁用 超线程 以及 L1 和 L2 缓存、关闭 Intel 处理器上的 Turbo 模式等。Temci 使用工具进行基准测试 , 性能统计 и 获取使用.

这是该实用程序在第一种情况下的样子:

# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times                [####################################]  100%
Report for single runs
sleep 0.1            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      100.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1800k, deviation = 3.86455%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

sleep 0.2            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      200.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1968k, deviation = 3.82530%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

根据基准测试结果,系统生成 便捷的报告 带有图表、表格和图表,这将 temci 与类似的解决方案区分开来。

在temci的缺点中,它的“年轻”尤为突出。 正因如此他 并非所有内容都受支持 硬件和软件配置。 例如,很难在 macOS 上运行,并且某些功能在基于 ARM 的系统上不可用。 未来,情况可能会改变,因为作者正在积极开发该项目,并且 GitHub 上的 star 数量正在逐渐增加 - 不久前 temci 甚至 评论中讨论了 关于黑客新闻。

uarch-长凳

用于评估低级 CPU 功能性能的实用程序,由工程师 Travis Downs 开发(特拉维斯·唐斯)。 最近他在写博客 绩效问题 在 GitHub Pages 上,其中讨论了基准测试工具和其他相关内容。 总的来说,uarch-bench才刚刚开始流行,但已经相当普遍了 提到 主题线程中的黑客新闻居民作为基准测试的首选工具。

Uarch-bench 允许您评估内存性能、并行数据加载速度和清理工作 YMM 寄存器。 可以找到程序生成的基准测试结果是什么样的 在官方存储库中 在页面的底部。

值得注意的是,uarch-bench 和 temci 一样, 禁用 Intel Turbo Boost功能(在负载下自动提高处理器时钟速度)使测试结果保持一致。

目前,该项目正处于开发的早期阶段,因此uarch-bench没有详细的文档,并且其运行可能包含错误 - 例如, 困难是已知的 随着 Ryzen 的推出。 此外,仅支持 x86 架构的基准测试。 作者承诺未来会添加更多功能,并邀请您参与开发。

液体

这是一套用于评估采用 Intel、AMD 和 ARMv8 处理器的 Linux 机器性能的工具。 它于 2017 年在德国联邦教育和研究部的支持下创建并开源。

在 likwid 工具中,我们可以重点介绍 likwid-powermeter,它显示来自 RAPL 寄存器的有关系统功耗的信息,以及 likwid-setFrequencies,它允许您控制处理器频率。 你可以看到完整的列表 在存储库中查找.

该工具由参与 HPC 研究的工程师使用。 例如,与 likwid 作品 来自德国埃尔兰根-纽伦堡大学 (RRZE) 区域计算中心的一组专家。 她还积极参与了这套工具的开发。

Linux 服务器的基准测试:一系列开放工具
Фото— 克莱姆·奥诺杰霍 — 不飞溅

性能工具

这个工具用于分析Linux服务器的性能 提交 布伦丹·格雷格. 他是开发商之一 跟踪 — 用于实时调试应用程序的动态跟踪框架。

perf-tools 基于 perf_events 和 ftrace 内核子系统。 它们的实用程序允许您分析 I/O 延迟 (iosnoop)、跟踪系统调用参数(unccount、funcslower、funcgraph 和 functrace)并收集文件缓存中“命中”的统计信息 (cachestat)。 在后一种情况下,命令如下所示:

# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9

围绕该仪器已经形成了一个相当大的社区(GitHub 上有近 6 个 star)。 有些公司积极使用性能工具,例如 Netflix公司。 但该工具正在进一步开发和修改(尽管最近很少发布更新)。 因此,它的运行中可能会出现错误——作者写道,有时perf-tools会导致内核恐慌。

LLVM-MCA

一个实用程序,可预测机器代码在不同 CPU 上需要多少计算资源。 她 评估 每个周期的指令(IPC)以及特定应用程序生成的硬件负载。

llvm-mca 于 2018 年作为该项目的一部分提出 LLVM,正在开发一个用于程序分析、转换和优化的通用系统。 众所周知,llvm-mca 的作者受到了一种分析软件性能的解决方案的启发 英特尔IACA 并试图创造一种替代方案。 根据用户的说法,该工具的输出(布局和数量)确实类似于 IACA - 例如 可以在这里找到。 但是,llvm-mca 只接受 AT&T 语法,因此您很可能必须使用转换器才能使用它。

我们在博客和社交网络上写的内容:

Linux 服务器的基准测试:一系列开放工具 “垫。 华尔街模型”或如何优化云成本

Linux 服务器的基准测试:一系列开放工具 如何保护您的 Linux 系统:10 个技巧
Linux 服务器的基准测试:一系列开放工具 最小化风险:如何不丢失数据

Linux 服务器的基准测试:一系列开放工具 适合那些已经参与系统管理或刚刚计划开始的人的书籍
Linux 服务器的基准测试:一系列开放工具 选择:五本书和一门网络课程

Linux 服务器的基准测试:一系列开放工具我们 1cloud.ru 提供免费服务“DNS 托管” 您可以在单个个人帐户中管理 DNS 记录。

来源: habr.com

添加评论