那时,20世纪90年代的序幕刚刚拉开。一个名为TPC(TransactionProcessingPerformanceCouncil,事务处理性能委员会)的组织无声无息地成立了,而Benchmark(基准测试)这个词也随之正式走上了企业计算的大舞台。从此,企业级计算平台的性能迈开了可度量的步伐,而企业用户在采购服务器平台的时候,除主观意识之外,理性的光芒开始闪耀。之后,Benchmark的内涵和范畴在不断演变,时至今日,已经形成了非常丰富、全面的企业计算平台基准测试体系。天地之间,一切皆可度量。随着Benchmark在用户端认知度不断提升,无论是成百上千台服务器喧闹运转的大中型数据中心,还是只有几台服务器安静闪动的小机房,量化评价服务器系统的理性光芒在闪耀。服务器的采购,正在进入理性时代。用户总希望有一种简单、高效的度量标准,来量化评价服务器系统,以便作为选型的依据。但实际上,服务器的系统性能很难用一两种指标来衡量。最理想的评估方式,莫过于建立一个接近真实业务应用的操作环境,进行各种压力测试,测算出不同应用环境下服务器系统的响应时间、吞吐量等等,从而对服务器性能做出一个最接近真实状况的评估。然而,对大多数用户来说,建立准确的压力测试环境是具有一定挑战性的,所以很多时候,在采购服务器的过程中,就需要一个工业标准作为参照物。那么,有这样的参照物吗?是的,业界有一个曝光率极高的词——Benchmark,就是服务器的工业标准基准测试,其中包括诸如TPC、SPEC、SAPSD、Linpack和HPCC等在内的众多服务器性能基准测试,可以从处理器性能、服务器系统性能、商业应用性能直到高性能计算机的性能,给出一个量化的评价指标供用户选择。那么,在如此多的标准中,用户该如何选择最适合自身应用环境的评价体系呢?实际上,这完全取决于用户对于其应用环境的了解。可以说,了解应用性质非常重要,不同的应用,即使属于同一大类,Benhmark的适用性也是因为应用类型的不同而不同的。例如都是数据库系统,也可能因为运算类型的不同而对服务器有不同的要求,所以基准测试的适用性也不同。序01第一回:把脉两大基准体系心中有数,方可游刃有余。在服务器基准测试体系中,TPC和SPEC是最常用、最普及的两大基准,深入了解其中的涵义和奥秘,对于更好地在服务器采购中运用Benchmark工具相当重要。TPC体系是影响最大的评测基准之一,但有多少用户真正了解其中的含义呢?TPC(TransactionProcessingPerformanceCouncil,事务处理性能委员会)是由数十家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,其功能是制定商务应用基准测试程序的标准规范、性能和价格度量,并管理测试结果的发布。作为一家非盈利性机构,事务处理性能委员会(TPC)负责定义诸如TPC-C、TPC-H和TPC-W基准测试之类的事务处理与数据库性能基准测试,并依据这些基准测试项目发布客观性能数据。TPC不给出基准测试程序的代码,而只给出基准测试程序的标准规范。任何厂家或其他测试者都可以根据规范,最优地构造出自己的测试系统(测试平台和测试程序)。为保证测试结果的完整性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(FullDisclosureReport),包括被测系统的详细配置、分类价格和包含5年维护费用在内的总价格。该报告必须由TPC授权的审核第一节:了解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月完成,后被业界逐渐接受。第二节:SPEC对Java和Web关注除了TPC家族,SPEC家族也是广为人知的一大体系。与TPC体系注重在线处理能力和数据库查询能力不同,SPEC服务器应用性能测试是一个全面衡量Web应用中Java企业应用服务器性能的基准测试。SPEC(theStandardPerformanceEvaluationCorporation,标准性能评估机构)是一个全球性的、权威的第三方应用性能基准测试组织,它旨在确立、修改以及认定一系列服务器应用性能评估的标准。SPEC服务器应用性能基准测试是一个全面衡量Web应用中Java企业应用服务器性能的基准测试。在这个基准测试中,系统模拟一个现代化企02业的电子化业务工作,如客户定购查询、产品生产制造管理、供应商和服务器提供商管理等,给系统以巨大的负载,以全面测试运行典型java业务应用的服务器性能水平。由于它体现了软、硬件平台的性能和成本指标,因此金融、电信、证券等关键行业用户作为选择IT系统一项权威的选型基准测试指标。目前主要包括针对CPU性能的SPECCPU2000(已有CPU2006,但数据不是很多)、针对Web服务器的SPECWeb2005、针对高性能计算的SPECHPC2002与SPECMPI2006、针对Java应用的jAppServer2004与JBB2005以及其他针对图形系统、网络和邮件服务器的基准测试指标。其中CPU2000和Web2005两类是被引用最广泛的基准测试指标。第三节:三种实践模式成熟的企业,从不盲目相信“国际通用标准”,他们总是付出人力、物力、财力,来建立自己的应用测试系统,从而决定服务器选型。“国际通用标准”的度量可以作为参考值,而不应作为必要条件。尤其是一定要弄清这些流行的度量有什么含义,是在什么样的系统环境中测得的,以及基准程序是否符合企业真实的业务流程和运作模式。下面就是三种不同的检测模式。在真实环境中运行实际应用:这是最理想的方式。要求制造商或系统集成商配合将系统(含平台、软件和操作流程)在一个实际用户点真正试运行一段时间。这样,用户不仅能看到实际性能,也能观察到系统是否稳定可靠、使用是否方便、服务是否周到、配置是否足够、全部价格是否合理。使用用户定义的基准程序:如果第一种方式不可行,用户可以定义一组含有自己实际应用环境特征的应用基准测试程序。业内有两个典型的例子:其一,近年来由于3层应用模型的风靡,SAPSD基准测试获得了众多厂商和用户的认可,于是在很多地方都能看见对SAP基准测试数据的引用;其二,国家税务总局曾经开发自己的基准测试程序,以帮助税务系统进行服务器选型。这种方式在中国尤其重要,因为中国的信息系统有其特殊性。03基准测试是系统性能的良好指标,只要你能:了解选择的基准测试测量对你重要的性能特性保证测试的硬件和软件反应需求保证性能测试的准确与公平每个基准测试只能测量系统某个或某些方面的性能。尽量使用已有的基准测试,而不要建立自己的基准测试。基准测试数据仅仅是做出决定的一部分指标,其它方面,如可用性、Tips104主流基准测试概览基准测试名称基本描述侧重点TPC-C单位为tpmC,对系统在线事务处理能力进行评价,含义为每分钟内系统处理新订单的个数主要模拟企业MIS、ERP等系统来考验服务器联机业务处理能力TPC-H单位为QphH@size,表示系统在处理特定资料量的数据库时,在一个小时之内能完成查询的数量主要目的是考验基于特定查询的决策支持能力,强调服务器在数据挖掘、分析处理方面的能力TPC-W单位为WIPS和$/WIPS,指的是系统每秒钟内完成的网络信息交换数量(WIPS)以及每WIPS的花费($/WIPS)衡量服务器在电子商务环境中的性能SPECCPU2000单位比值,是系统执行测试程序的时间与参考系统的比值考察系统CPU运算能力和内存性能SPECWeb2005指标为整数,含义为系统能同时响应的最大Http连接数侧重CPU、内存、系统I/O和网络的整体性能SPECJBB2005单位jobs@配置,即基于Java平台的应用服务器每秒能执行的Java操作数衡量Java应用服务器的性能Linpack指标的含义是HPC采用高斯消元法求解一元次稠密线性代数方程组的每秒处理次数衡量HPC集群的浮点运算性能使用通用基准测试程序:如果前两种均难实行,那么使用如TPC-C之类的通用基准测试程序未尝不可。但用户应当尤其注意——实际应用是否与基准测试程序相符?绝大多数基准测试程序都是在美国制订的,而中国的企事业单位与美国的运作方式常常不一样,在使用TPC-C时,用户应该清楚地知道:自己的应用是否符合批发商模式?事务请求是否与测试模式近似?对响应时间的要求是否那么高?如果都不是,则tpmC值的参考价值就不太大了。那么不妨看看其他的更合适的测试指标,例如SPECWeb2005等。05第二回:四大应用中的Benchmark知己知彼,才能为我所用。应用种类不同,所适用的Benchmark基准测试也不同。只有做到对应用类型和Benchmark种类心中有数,才能在名目繁多的基准测试中找到能够真正为我所用的项目,从而有效地指导服务器平台采购。这里以高性能运算、在线事务处理能力、Web应用和Java应用四大类企业典型应用为主,介绍了“对号入座”的基准测试。第一节:高性能运算有多“高”?高性能计算机是一个复杂的系统,很难用几个参数或指标对其进行性能评价。为此,业界开发了多种标准测试程序试图对高性能计算机进行评定,但这些测试指标通常都是对计算机某一方面进行测试,而不能全面地说明系统的整体性能。目前,比较常用的几个基准测试中,Linpack侧重于系统浮点峰值运算能力的测试;SPECCPU2000测试的是单系统CPU运算性能及作业吞吐能力;SPECOMP2001的结果说明了共享内存的计算机使用共享内存并行模式(OpenMP)的并行效率和加速比;STREAM试图对内存子系统的数据访问能力(带宽和延迟)进行定量地评价等。高性能计算用户的应用千差万别,对计算机系统的要求也是各种各样。所以评价高性能计算机性能的最好方法是用用户自己的应用程序去进行实际的测试,或找到相似应用的商业软件的基准测试结果。这样的评价会更有针对性,也比较客观。比如在制造行业中,常常需要对汽车在高速行驶情况下的气动性能、飞机发动机内气体流动等情况进行分析,相应的商业流体力学分析软件有Fluent、Satr-CD、Power-Flow等。而在石油行业中,比较知名的软件有Platform等。Linpack主宰TOP500每年,当全球超级计算机TOP500名单发布的时候,都会成为业界的关注焦点。名单上起起落落、沉沉浮浮的背后,牵扯着从处理器厂商到系统厂商、软件厂商等等的一长串心跳,对他们来说,名单上的名次就是实力、技术、研发、前瞻性等多个因素的考量。结果实例平台矩阵大小(n)GFlops效率单核至强®3.6GHz30kx30k12.385.7%双核至强®3.0GHz40kx40k39.181.5%四核至强®2.66GHz45kx45k64.475.5%双核安腾®1.6GHz/24M60kx60k48.194.0%SPECfp2006考察浮点运算1、CPU基准测试SPECCPU2006对于一个高性能计算机来说,用户最关注的就是它的整体运算能力,Linpack能够帮助用户清晰地掌握这个系统的整体能力,而对于单一运算节点性能及作业吞吐能力的测试,则靠另外一个基准测试SPECCPU2006来完成。或者说,对于计算密集类型的工作负荷来说,SPECCPU2006基准测试度量意义SPECint_base2006(1P)速度整数性能SPECint_rate_base2006处理能力SPECfp_base2006(1P)速度浮点性能SPECfp_rate_base2006处理能力06那么,TOP500的名次是如何排定的呢?一项名为Linpack的服务器基准测试就是最关键的依据。作为一种性能