基准测试理论全面介绍:IOmeter、Stream、Whetstone、Dhrystone、SPEC、TPC、Linpack

本文探讨了计算机硬件性能提升后如何通过基准测试如MIPS、IOPS和RampUpTime进行准确评估。文章介绍了Iometer和Dynamo在I/O性能测试中的应用,以及Stream测试在内存带宽测量中的作用。此外,还详细解读了Whetstone、Dhrystone、SPEC系列、TPC等经典和现代基准测试标准,以及它们在不同应用场景中的价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

计算机硬件的不断的升级带来系统处理性能持续的提高,如何对平台或系统的性能作出正确的判断就是性能测试的主要目标。

如何保证性能测试不偏不倚,而不是公说公有理婆说婆有理,就引入基准测试,即Benchmark测试。测试时,把应用程序中用得最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序。

业界也有多种基准测试,有基于实际的应用种类如TPC-C,有测试系统的某一部分的性能,如测试硬盘吞吐能力的IOmeter,测试内存带宽的stream。

常识:

  • MIPS:Million Instructions Per Second,每秒处理的百万级的机器语言指令数
  • IOPS:I/Os Per Second,每秒IO数
  • Ramp Up Time:可以理解为机器启动时间、程序就绪时间、应用准备时间等。为了保证测试程序的准确性,很多基准测试程序需要配置Ramp Up Time

IOmeter

官网,一个用于测试I/O子系统的工具,可广泛应用于衡量磁盘、文件、网络或系统的IO性能,可用于单机或集群。下载地址,包含两个程序:

  • Iometer:控制程序。带有图形用户界面,可配置工作负载、设置操作参数以及启动和停止测试。Iometer告诉Dynamo执行哪些操作,收集结果数据,并将结果汇总到输出文件中。一次只能运行Iometer的一个副本;通常在服务器上运行。
  • Dynamo:工作负载生成器,没有用户界面。Dynamo根据Iometer的命令执行I/O操作并记录性能信息,然后将数据返回给Iometer。一次可能有多个Dynamo副本同时在运行;通常,一个副本运行在服务器上,其他各个副本分别运行在各个客户端计算机上。

测试性能时,在Windows系统上安装Iometer图形界面程序,可以直接安装和启动Iometer,不必额外安装Dynamo。Dynamo则安装在被测试的Linux服务器上,且需要和Windows服务器处于同一个网络环境下。

Stream

Stream测试,用于测量可持续的内存带宽(MB/s),有fortran和c两类程序源码,这两种语言在数学计算方面的高效率,使得stream测试例程可以充分发挥出内存的能力。Stream对于CPU的计算能力要求很小,对CPU内存带宽压力很大。

Stream测试得到的是可持续性运行的内存带宽最大值,数组的值采用双精度,主要包括四种数组运算:

  • Copy:数组的复制,从内存单元中读取一个数,并复制到其他内存单元中。两次访问内存操作,1R1W。
  • Scale:数组的乘法(尺度变换),从内存单元中读取一个数,与常数相乘,得到的记过存到其他内存单元。两次访问内存操作,1R1W。
  • ADD:数组的矢量求和。从两个内存单元中分别读取两个数,将其进行加法操作后,得到的结果写入另一个内存单元中。3次访问内存操作,2R1W。
  • Triad:加法、乘法和复制三种操作的结合。从内存中读取一个数,与一个常数相乘得到一个乘积,然后从另一个内存单元中读取一个数与刚才乘积结果相加,得到的结果写入内存。3次访问内存操作,2R1W。

测试的一般规律是Add>Triad>Copy>Scale。一次Add和Triad操作都需要三次访问内存,Copy和Scale操作需要进行两次访问内存,访问内存次数越多越能够掩盖访存延迟,带宽越大。

参考Benchmark程序:GitHub

Whetstone

20世纪70-80年代开始流行的四个性能测试标准:Livermore、Whetstone、Dhrystone、Linpack,被合称为Classic Benchmark,参考:四大经典性能测试标准历史

  • Livermore:Numeric benchmark for supercomputers
  • Whetstone:Floating point benchmark for minicomputers
  • Dhrystone:Integer benchmark for UNIX systems
  • Linpack:Floating point benchmark for workstations

Whetsone于1972年所开发,主要目的是模仿60个1970年后的程序算法。其最有名的版本为Fortran版,高度反映60年代数字计算方向的综合性测试程序,主要包括:浮点运算、整数算术运算、功能调用、数组变址、条件转移、超越函数。测试结果用Kwips表示。

Dhrystone

由Reinhold P. Weicker在1984年提出来的一个基准测试程序,其主要目的是测试处理器的整数运算和逻辑运算的性能,首先用Ada语言发布。

后来Rick Richardson为Unix开发用C语言编写的Version 1.1,成功推动Dhrystone的广泛应用。包括100条语句:各种赋值语句,各种数据类型和数据区,各种控制语句,过程调用和参数传送,整数运算和逻辑操作。

Dhrystone标准程序的测试方法,就是单位时间内跑多少次Dhrystone程序,其指标单位为DMIPS/MHz。DMIPS,即D+MIPS,表示在Dhrystone标准的测试方法下的MIPS。因为历史原因把在VAX-11/780机器上的测试结果1757 Dhrystones/s定义为1 DMIPS,因此在其他平台测试到的每秒Dhrystones数应除以1757,才是真正的DMIPS数值,DMIPS其实表示的是一个相对值。

Dhrystone与Whetsone不同之处在于其并不包括浮点运算。

SPEC

官网,Standard Performance Evaluation Corporation,标准性能评估公司,美国一家非营利性公司,成立于1988年,旨在生产,建立,维护和认可一套标准化的计算机性能基准。

SPEC基准测试程序,能够全面反映机器的性能,具有很高的参考价值。

SPEC以AX-11/780 的测试结果作为基数,当前主要的基准测试程序有SPEC int_base_rate 2000、SPEC fp_base_rate 2000和SPEC JBB 2000等。还有基于某种数据库运行环境下的测试,也是可以参考的数值。在采用通用基准测试程序时,要注意真实的业务流程和使用环境与通用测试基准的业务流程和使用环境的异同,这样,基准测试值才有参考价值。

SPEC已公布如下的基准程序组:

  • SPEC 95:测量CPU、存储器系统和编译器代码生成性能
  • SPE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

johnny233

晚饭能不能加鸡腿就靠你了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值