TPC基准测试


  TPC不给出基准程序的代码,而只给出基准程序的标准规范。任何厂家或其他测试者都可以根据规范,优地构造出自己的测试系统(测试平台和测试程序)。为保证测试结果的完整性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(Full Disclosure Report),包括被测系统的详细配置、分类价格和包含5年维护费用在内的总价格。该报告必须由TPC授权的审核员核实(TPC本身并不做审计)。TPC在全球只有不到10名审核员,全部在美国。
  TPC推出过11套基准程序,分别是正在使用的TPC-App、TPC-H、TPC-C、TPC-W,过时的TPC-A、TPC-B、TPC-D和TPC-R,以及因为不被业界接受而放弃的TPC-S(Server专门测试基准程序)、TPC-E(大型企业信息服务测试基准程序)和TPC-Client/Server。而目前为“流行”的TPC-C是在线事务处理(OLTP)的基准程序,于1992年7月完成,后被业界逐渐接受。
  TPC-C使用三种性能和价格度量,其中性能由tpmC(transactions per minute,tpm)衡量,C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。TPC-C还经常以系统性能价格比的方式体现,单位是$/tpmC,即以系统的总价格(单位是美元)/tpmC数值得出。
  从TPC-C的定义不难知道,这套基准程序是用来衡量整个IT系统的性能,而不是评价服务器或某种硬件系统的标准,而且tpmC数值的高低直接受到各个环节的影响,右表大概可以说明系统设置对tpmC测试的影响。此处的“IT系统”包括服务器、外设(如硬盘或RAID)、服务器端操作系统、数据库软件、客户端及其操作系统、数据库软件和网络连接等。因此,如何解读tpmC数值会因不同的采购需求有非常大的差异。


       其他测试基准


  除了以上介绍的两个测试标准外还有其他的一些服务器标准测评指标,如Linpack它测试CPU密集浮点运算性能。以下是服务器评测的一些Benchamark软件:


1)        SPECweb99 相对简单的webserver 的基准测试;
2)        SPECweb99_SSL SPECweb99 的SSL版本;
3)        SPEC SFS97 基于NFS的file server的基准测试;
4)        SPECmail2001 电子邮件系统的基准测试;
5)        SPECjbb2000 基于Java的业务的基准测试;
6)        ECperf 企业Javabean的基准测试- 马上将被SPECjAppServer2001代替;
7)        SPEC CPU2000 整数和浮点运算的基准测试;
8)        SPEC OMP2001: 测试基于OpenMP并行化的并行应用性能的基准测试;
9)        TPC-C 老事务处理的基准测试;
10)        TPC-H Ad-hoc 查询以及决策支持的基准测试;
11)        TPC-R 商业报告以及决策支持的基准测试;
12)        TPC-W 基于事务处理的互联网电子商务的基准测试;
13)        Oracle Applications benchmark:Oracle应用程序的基准测试;
14)        Fluent CFD benchmarks:Fluent公司计算流体动力的基准测;
15)        Server and workstation benchmark records at Ideas International:Ideas International Limited (IDEAS)公司的服务器和工作站的基准测试(包括产品的性能,价格,服务)。

  评测指标


  什么是测试指标,测试指标是在一个测试中需要测试什么;测试指标来源于依据的标准如:国际标准,标准,行业标准等,或者来源于系统需求;也可能来源于系统的规格说明书等;那么服务器的测试指标是什么呢,或者说服务器要测试什么呢,通过对服务器的研究和参考的一些常见的服务器评测资料。

  测试工具
服务器的性能评测工具很多,在互连网上也有不少免费的和开源的评测工具,我们在这一部分分为网络版和单机版网络类来介绍用于服务器评测的工具。

  单机版评测工具


1) SPECCPU2000

  SPEC CPU2000是SPEC组织推出的一套CPU子系统评估软件,它包括CINT2000和CFP2000两个子项目,前者用于测量和对比整数性能,而后者则用于测量和对比浮点性能。计算系统中的处理器、内存和编译器都会影响终的测试性能,而I/O(磁盘)、网络、操作系统和图形子系统对于SPEC CPU2000的影响非常的小。

  在测试过程中需要在被测服务器中安装了Intel C++ 8.1 Compiler、Intel Fortran 8.1 Compiler这两款SPEC CPU2000必需的编译器,另外安装了Microsoft Visual Studio 2003.net提供必要的库文件。按照SPEC的要求可以根据自己的情况编辑了新的Config文件,进行满足Base的测试。

  下面的测试成绩是在开启双Xeon处理器超线程条件下,4用户,SPECint_rate_base2000和SPECfp_rate_base2000。

 
  SPECfp_rate2000测试过程中同时执行多个实例(instance),测量系统执行计算密集型浮点操作的能力,比如CAD/CAM、DCC以及科学计算等方面应用可以参考这个结果。SPECint_rate 2000测试过程中同时执行多个实例(instances),然后测试系统同时执行多个计算密集型整数操作的能力,可以很好的反映诸如数据库服务器、电子邮件服务器和Web服务器等基于整数应用的多处理器系统的性能。以下是一个服务器的测试结果。

  SPEC CPU现行新版本是SPEC CPU2006相关的测试数据和工具的使用文档可以在SPEC的网站上进行下载,此软件没有提供免费试用版,在互联网上也比较难下到免费版或者破解版,如果应用这个软件需要购买,具体信息可以在SPEC的网站上进行查询。

2) ScienceMark2

  ScienceMark2软件测试主要分为两部分,首先的是对处理器Cache以及系统内存速度的性能评估。对于测试结果我们还是采用的对比的模式,大家可以清楚的看出,无论在L1 Cache还是L2 Cache以及系统Memory的TEST中,I925XE平台的结果都要一些,但相应的来说还是内存的测试结果差别更大。

  ScienceMark重要的功能是进行量子化学方面的计算,由于它在计算后会给出运行时间,所以还能当作很好的测试CPU性能的软件。我们进行了两种计算,其中Molecular Dynamics是对140开尔文温度下216个氩原子进行分子动力学模拟;Primordia测试是对钷元素61个电子的薛定谔方程求量子解。通过这些测试,基本上能体现出CPU、内存的性能高低,以上是测试结果,单位是秒,数值越小表明性能越好。

3) Sisoft Sandra

  Sisoft Sandra:WINDOWS下基准评测系列测试软件是Windows系统下的基准评测软件。此软件有超过三十种以上的测试项目,能够查看系统所有配件的信息,而且能够对部分配件(如CPU、内存、硬盘等)进行打分(benchmark),并且可以与其它型号硬件的得分进行对比。另外,该软件还有系统稳定性综合测试、性能调整向导等附加功能。(此软件可以在网上下载到破解版,具体信息可以在google里进行搜索)


4) IOmeter

  Iometer:存储子系统读写性能测试工具是Windows系统下对存储子系统的读写性能进行测试的软件。可以显示磁盘系统的大IO能力、磁盘系统的大吞吐量、CPU使用率、错误信息等。用户可以通过设置不同的测试的参数,有存取类型(如sequential ,random)、读写块大小(如64K、256K),队列深度等,通过模拟实际应用的读写环境进行测试。(此软件是一个免费的小软件可以在网站上得到下载)


5) Ubench

  Ubench是在Unix或者linux操作系统中来评价CPU和内存以及AVG的性能的;它的评测原理是:通过多块CPU执行整数运算和浮点运算3分钟的到的结果是CPU性能基准。通过对内存进行读写操作3分钟即为内存基准。

6) IOzone

  Iozone是一款Linux下I/O性能基准测评工具,可以测试不同的操作系统中文件系统的读写性能。可以测试Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。测试结果生成excel文件。另外iozone还附带了用gnuplot画图的脚本,可以将测试结果以图形方式表现。该软件用在大规模机群系统上测试NFS的性能,更加具有说服力。