Linux上服务器基准:一系列开放工具

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

更多基准:



照片-Lukas Blazek -Unsplash



坦西


这是用于估计两个程序的执行时间的工具。 实际上,它允许您比较两个应用程序的执行时间。 该实用程序由来自德国的一名学生Johannes Bechberger编写,他在2016年的本科工作中对其进行了开发。 今天,该工具获得GNU通用公共许可证的许可。

Johannes想要创建一个工具,该工具可以在受控环境中测量计算系统的性能。 因此,temci的主要功能之一是配置测试环境的能力。 例如, 您可以 :更改CPU频率控制管理器的设置,禁用超线程以及L1和L2高速缓存,在Intel处理器和其他处理器上关闭Turbo模式对于基准测试,temci使用timeperf_statgetrusage工具

这是第一种情况下实用程序的工作方式:

# 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上的明星数量逐渐增加,这种情况将来可能会改变-不久前,甚至在Hacker News 的评论中讨论了 temci。



长凳


评估底层CPU功能性能的实用程序,它是由工程师Travis Downs( Travis Downs )开发的。 最近,他在GitHub Pages上运行了Performance Matters博客,该博客讨论基准测试工具和其他相关内容。 总体而言,uarch工作台才刚刚开始流行,但是Hacker News居民已经在主题线程中经常提到它作为基准测试工具。

Uarch-bench允许您评估内存性能,并行数据加载的速度以及清理YMM寄存器 。 该程序生成的基准测试结果看起来如何,可以在页面底部的官方存储库中找到。

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

到目前为止,该项目尚处于开发的早期阶段,因此uarch-bench没有详细的文档,并且其工作中可能存在错误-例如, 已知在Ryzen上运行遇到的困难 。 仅支持x86体系结构的基准测试。 作者承诺将来会添加更多功能,并邀请其加入开发。



likwid


这是一个用于评估具有Intel,AMD和ARMv8处理器的Linux机器性能的工具包。 它是在2017年由德国联邦教育和研究部主持创建的,并已转移到开源中。

在likwid工具中,可以区分likwid-powermeter,它显示来自RAPL寄存器的有关系统消耗功率的信息,以及likwid-setFrequency-允许您控制处理器频率。 您可以在存储库中找到完整列表。

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





照片-Clem Onojeghuo-不飞溅



性能工具


Brendan Gregg 引入了这种用于分析Linux服务器性能的工具。 他是DTrace的开发人员之一, DTrace是用于实时调试应用程序的动态跟踪框架。

perf工具基于内核子系统perf_events和ftrace。 它们的实用程序使您可以分析输入/输出延迟(iosnoop),跟踪用于访问系统调用的参数(无计数,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上有近六千颗星 )。 还有一些公司积极使用性能工具,例如Netflix 。 但是该工具正在最终确定和修改(尽管最近很少发布更新)。 因此,在他的工作中可能会发生错误-作者写道,有时perf-tools称为内核恐慌。



llvm-mca


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

llvm-mca于2018年作为LLVM项目的一部分推出,该项目正在开发用于程序分析,转换和优化的通用系统。 众所周知,llvm-mca的作者受到英特尔IACA软件性能分析解决方案的启发,并寻求创建替代方案。 根据用户的说法,该工具的输出(其标记和编号)确实类似于IACA- 在此处可以找到示例。 但是,llvm-mca仅接受AT&T语法 ,因此您可能需要使用转换器才能使用它。



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

“垫子。 华尔街模式“或如何优化云成本

保护您的Linux系统:10个技巧
风险最小化:如何不丢失数据

为那些已经从事系统管理或打算开始学习的人准备的书
选择:网络上的五本书和一门课程



我们在1cloud.ru提供免费服务“ DNS托管 ”。 您可以在一个个人帐户中管理DNS记录。


Source: https://habr.com/ru/post/zh-CN464763/


All Articles