HPC采购参照-服务器性能基准测试
一个名为TPC(Transactionprocessing Performance Council,事务处理性能委员会)的组织无声无息地成立了,而Benchmark(基准测试)这个词也随之正式走上了企业计算的大舞台。
从此,企业级计算平台的性能迈开了可度量的步伐,而企业用户在采购服务器平台的时候,除主观意识之外,理性的光芒开始闪耀。之后,Benchmark的内涵和范畴在不断演变,时至今日,已经形成了非常丰富、全面的企业计算平台基准测试体系。天地之间,一切皆可度量。随着Benchmark在用户端认知度不断提升,无论是成百上千台服务器喧闹运转的大中型数据中心,还是只有几台服务器安静闪动的小机房,量化评价服务器系统的理性光芒在闪耀。
服务器的采购,正在进入理性时代。用户总希望有一种简单、高效的度量标准,来量化评价服务器系统,以便作为选型的依据。但实际上,服务器的系统性能很难用一两种指标来衡量。最理想的评估方式,莫过于建立一个接近真实业务应用的操作环境,进行各种压力测试,测算出不同应用环境下服务器系统的响应时间、吞吐量等等,从而对服务器性能做出一个最接近真实状况的评估。然而,对大多数用户来说,建立准确的压力测试环境是具有一定挑战性的,所以很多时候,在采购服务器的过程中,就需要一个工业标准作为参照物。
那么,有这样的参照物吗?是的,业界有一个曝光率极高的词--Benchmark,就是服务器的工业标准基准测试,其中包括诸如TPC、SPEC、SAP SD、Linpack和HPCC等在内的众多服务器性能基准测试,可以从处理器性能、服务器系统性能、商业应用性能直到高性能计算机的性能,给出一个量化的评价指标供用户选择。那么,在如此多的标准中,用户该如何选择最适合自身应用环境的评价体系呢?
实际上,这完全取决于用户对于其应用环境的了解。可以说,了解应用性质非常重要,不同的应用,即使属于同一大类,Benhmark的适用性也是因为应用类型的不同而不同的。例如都是数据库系统,也可能因为运算类型的不同而对服务器有不同的要求,所以基准测试的适用性也不同。第一回:把脉两大基准体系心中有数,方可游刃有余。在服务器基准测试体系中,TPC和SPEC是最常用、最普及的两大基准,深入了解其中的涵义和奥秘,对于更好地在服务器采购中运用Benchmark工具相当重要。第一节:了解TPC系统PC体系是影响最大的评测基准之一,但有多少用户真正了解其中的含义呢?TPC(Transaction processing Performance Council,事务处理性能委员会)是由数十家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,其功能是制定商务应用基准测试程序的标准规范、性能和价格度量,并管理测试结果的发布。作为一家非盈利性机构,事务处理性能委员会(TPC)负责定义诸如TPC-C、TPC-H和TPC-W基准测试之类的事务处理与数据库性能基准测试,并依据这些基准测试项目发布客观性能数据。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月完成,后被业界逐渐接受。 #p#page_title#e#第二节:SPEC关注Java和Web除了TPC家族,SPEC家族也是广为人知的一大体系。与TPC体系注重在线处理能力和数据库查询能力不同,SPEC服务器应用性能测试是一个全面衡量Web应用中java企业应用服务器性能的基准测试。SPEC(the Standard Performance Evaluation Corporation标准性能评估机构)是一个全球性的、权威的第三方应用性能基准测试组织,它旨在确立、修改以及认定一系列服务器应用性能评估的标准。SPEC服务器应用性能基准测试是一个全面衡量Web应用中java企业应用服务器性能的基准测试。在这个基准测试中,系统模拟一个现代化企业的电子化业务工作,如客户定购查询、产品生产制造管理、供应商和服务器提供商管理等,给系统以巨大的负载,以全面测试运行典型java业务应用的服务器性能水平。由于它体现了软、硬件平台的性能和成本指标,被金融、电信、证券等关键行业用户作为选择IT系统一项权威的选型基准测试指标。目前主要包括针对CPU性能的SPEC CPU2000(已有CPU2006,但数据不是很多)、针对Web服务器的SPECweb2005、针对高性能计算的SPEC HPC2002与SPEC MPI2006、针对Java应用的jAppServer2004与JBB2005以及其他针对图形系统、网络和邮件服务器的基准测试指标。其中CPU2000和web2005两类是被引用最广泛的基准测试指标。第三节:三种实践模式成熟的企业,从不盲目相信"国际通用标准",他们总是付出人力、物力、财力,来建立自己的应用测试系统,从而决定服务器选型。"国际通用标准"的度量可以作为参考值,而不应作为必要条件。尤其是一定要弄清这些流行的度量有什么含义,是在什么样的系统环境中测得的,以及基准程序是否符合企业真实的业务流程和运作模式。下面就是三种不同的检测模式。在真实环境中运行实际应用:这是最理想的方式。要求制造商或系统集成商配合将系统(含平台、软件和操作流程)在一个实际用户点真正试运行一段时间。这样,用户不仅能看到实际性能,也能观察到系统是否稳定可靠、使用是否方便、服务是否周到、配置是否足够、全部价格是否合理。使用用户定义的基准程序:如果第一种方式不可行,用户可以定义一组含有自己实际应用环境特征的应用基准测试程序。业内有两个典型的例子:其一,近年来由于3层应用模型的风靡,SAP SD基准测试获得了众多厂商和用户的认可,于是在很多地方都能看见对SAP基准测试数据的引用;其二,国家税务总局曾经开发自己的基准测试程序,以帮助税务系统进行服务器选型。这种方式在中国尤其重要,因为中国的信息系统有其特殊性。使用通用基准测试程序:如果前两种均难实行,那么使用如TPC-C之类的通用基准测试程序未尝不可。但用户应当尤其注意--实际应用是否与基准测试程序相符?绝大多数基准测试程序都是在美国制订的,而中国的企事业单位与美国的运作方式常常不一样,在使用TPC-C时,用户应该清楚地知道:自己的应用是否符合批发商模式?事务请求是否与测试模式近似?对响应时间的要求是否那么高?如果都不是,则tpmC值的参考价值就不太大了。那么不妨看看其他的更合适的测试指标,例如SPECweb2005等。
第二回:四大应用中的Benchmark
知己知彼,才能为我所用。
应用种类不同,所适用的Benchmark基准测试也不同。只有做到对应用类型和Benchmark种类心中有数,才能在名目繁多的基准测试中找到能够真正为我所用的项目,从而有效地指导服务器平台采购。这里以高性能运算、在线事务处理能力、Web应用和Java应用四大类企业典型应用为主,介绍了相应"对号入座"的基准测试。第一节:高性能运算有多"高"?高性能计算机是一个复杂的系统,很难用几个参数或指标对其进行性能评价。为此,业界开发了多种标准测试程序试图对高性能计算机进行评定,但这些测试指标通常都是对计算机某一方面进行测试,而不能全面地说明系统的整体性能。 #p#page_title#e#目前,比较常用的几个基准测试中,Linpack侧重于系统浮点峰值运算能力的测试;SPEC CPU2000测试的是单CPU性能及作业吞吐能力;SPEC OMP2001的结果说明了共享内存的计算机使用共享内存并行模式(OpenMP)的并行效率和加速比;STREAM试图对系统的数据访问能力(带宽和延迟)进行定量地评价等。高性能计算用户的应用千差万别,对计算机系统的要求也是各种各样。所以评价高性能计算机性能的最好方法是用用户自己的应用程序去进行实际的测试,或找到相似应用的商业软件的基准测试结果。这样的评价会更有针对性,也比较客观。比如在制造行业中,常常需要对汽车在高速行驶情况下的气动性能、飞机发动机内气体流动等情况进行分析,相应的商业流体力学分析软件有Fluent、Satr-CD、Power-Flow等。而在石油行业中,比较知名的软件有Platform等。Linpack主宰TOP500每年,当全球超级计算机TOP500发布的时候,都会成为业界的关注焦点。名单上起起落落、沉沉浮浮的背后,牵扯着从处理器厂商到系统厂商、软件厂商等等的一长串心跳,对他们来说,名单上的名次就是实力、技术、研发、前瞻性等等多个因素的考量。那么,TOP500的名次是如何排定的呢?一项名为Linpack的服务器基准测试就是最关键的依据。作为一种性能计量标准,Linpack基准可以提供详细的描述和多种硬件平台上的性能结果。Linpack Benchmark中使用的基准测试方法主要用于解算线性方程的密集系统。在TOP500中,就使用了这种版本的基准测试,使用户能够衡量系统的规模并对软件进行优化,使其能够在特定的硬件平台上发挥出最佳的性能。虽然这种性能并不能反映出特定系统的总体性能,但它可以反映出专用系统解算线性方程密集系统的性能。因为这种问题很常见,而且取得的性能非常高,因此良好的性能参数对于峰值性能具有很好的参考意义。SPECfp2006考察浮点运算1、CPU基准测试SPEC CPU2006对于一个高性能计算机来说,用户最关注的就是它的整体运算能力,Linpack能够帮助用户清晰地掌握这个系统的整体能力,而对于单个CPU性能及作业吞吐能力的测试,则靠另外一个基准测试SPEC CPU2006来完成。或者说,对于计算密集类型的工作负荷来说,SPEC CPU2006是一个非常重要的基准测试。SPEC CPU2006能分别测量计算机系统的整数和浮点性能。其中,SPECint_base2006衡量在单处理器系统上的整数"速度"性能,而SPECfp_base2006则衡量在单处理器系统上的浮点"速度"性能。"整数"部分有12个程序,使用C或C++语言,它们不使用CPU的浮点单元;而"浮点数"分有 17 个程序(原来的CCPECfp2000至右14个程序),使用FORTRAN 77/90和C语言,这些程序的主要运算是浮点数的。SPECint2006和SPECfp2006的结果以执行时间为准。每个程序的执行时间和一个参考平台(Sun Ultra5/10 300MHz)相比,计算出其倍数。如果执行时间和参考平台相同,结果就是100。如果只花了一半时间完成,结果就是200。"整数"的12个程序的结果,取其平均值,得到的就是SPECint2006的测试结果。"浮点数"的17个程序也是一样。
由于SPEC CPU2006的测试程序都是源代码形式(以保证跨平台测试),所以编译器效率就显得十分重要。SPEC CPU2006规定,测试结果有"Base"和"Peak"两种结果。"Base"测试中,对于编译时的最佳优化参数有所规定(所有的程序都需使用同样的参数,且参数数目不能超过四个),而"Peak"测试则比较宽松。 #p#page_title#e#
2、关于浮点运算的误区
SPECint2000和SPECfp2000分别衡量服务器的整数运算能力和浮点运算能力。然而很多人并不是非常清楚所谓整数运算能力和浮点运算能力的实质意义。大多数高性能计算机都是用来进行高精度、大计算量的科学计算,所以对于诸如石油勘探、地质勘测、天气预报等用户来说,非常注重服务器的浮点运算能力,就是因为整数运算能力是指系统对于16位以内数据的计算精确度和速度,而浮点运算能力代表的是一个计算机系统对于16位以上数据的计算速度和结果精确度。所以,对于高性能计算机的用户来说,在采购服务器的时候,对于厂商提供的SPECfp2000浮点运算基准测试要给予重点关注,而对于一般的商业用户来说,一个计算机系统的浮点运算能力强或者弱,并没有太大的实质意义,这个用户群体更应该关注诸如TPC-C等在线事务交易处理性能。
3、英特尔处理器对浮点运算能力的加强英特尔®至强®处理器系列与英特尔®安腾®处理器系列通过先进的处理器体系架构对系统的浮点运算能力进行了优化与加强,在Linpack,SPECfp2000等多项基准测试中均体现出优异的性能,其主要策略是并行计算与大量的内核资源。以安腾系统的EPIC架构为例,其大量的寄存器资源(264个通用寄存器)可以保证每时钟周期6条指令的并发执行,同时,丰富的板上资源,包括24MB的二级缓存可以使得所有处理器浮点运算单元保持高效运转,减少等待造成的系统空闲。同时,多线程、多核技术的应用进一步强化了其并行能力,使其在各项基准测试中的浮点性能进一步提升。第二节:在线事务处理能力的衡量对于大多数的商业用户来说,对于服务器系统的要求与科学计算用户有着明显的区别。对于这部分用户来说,他们更关注服务器对于交易的处理能力以及处理成本,而不是峰值、单CPU的运算能力。在衡量基于数据库应用的服务器性能时,在线事务交易处理(OLTP)系统性能成为一个关键指标。在现有的Benchmark体系中,有三个基准测试可以帮助用户有效衡量服务器系统的OLTP性能,就是TPC-C、TPC-H和SPECCPU。深入了解TPC-C1、TPC-C衡量系统整体TPC-C是一种旨在衡量联机事务处理(OLTP)系统性能与可伸缩性的行业标准基准测试项目。这种基准测试项目将对包括查询、更新及队列式小批量事务在内的广泛数据库功能进行测试。对于数据库密集型应用来说,TPC-C被许多IT专业人员视为衡量真实OLTP系统性能的有效指示器。TPC-C测试规范经过两年的研制,于1992年7月发布。几乎所有在OLTP市场提供软硬件平台的厂商都发布了相应的TPC-C测试结果,随着计算机技术的不断发展,这些测试结果也在被不断刷新。独立审计机构负责对基准测试结果进行公证,同时,TPC将出据一份全面的测试报告,用户可以从TPC站点(http://www.tpc.org/)上获得。TPC-C测试规范中模拟了一个比较复杂并具有代表意义的OLTP应用环境:假设有一个大型商品批发商,它拥有若干个分布在不同区域的商品库;每个仓库负责为10个销售点供货;每个销售点为3000个客户提供服务;每个客户平均一个订单有10项产品;所有订单中约1%的产品在其直接所属的仓库中没有存货,需要由其他区域的仓库来供货。TPC-C测试包括5个典型的OLTP事务:新订单:一个用户提交一个新的订单支付:更新用户的账户余额以反映一个支付交付:订单的交付(通过一个批事务处理实现)订单状态:返回用户最新订单的状态库存水平:监控当前仓库库存对于前四种类型的交易,要求响应时间在5秒以内;对于库存状况查询交易,要求响应时间在20秒以内。TPC-C的测试结果主要有两个指标:流量指标(Throughput,简称tpmC)按照TPC的定义,流量指标描述了系统在执行支付、订单状态更新、交付及存货变更这四种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满足TPC-C测试规范的要求。流量指标值越大越好。性价比(Price/Performance,简称Price/tpmC)即测试系统价格(指在美国的报价)与流量指标的比值。性价比越小越好。
基于四核英特尔®至强®5300系列处理器的服务器平台数据库性能
2、解读tpmCtpmC代表的是系统最大的持续性能,它被定义为系统每分钟可以处理多少个新订单事务,与此同时,系统还在处理其他四种事务类型(支付、订单状态、交付、库存水平)。所有5个TPC-C事务都有某个限定的用户响应时间要求,其中新订单事务的响应时间是5秒以内。因此如果一个系统的TPC-C值是100tpmC/min,说明该系统在每分钟处理其他的混合的TPC-C事务的工作的同时,可以产生100个新订单事务。 #p#page_title#e#从TPC-C的定义不难知道,这套基准测试程序是用来衡量整个IT系统的性能,而不是评价服务器或某种硬件系统的标准,而且tpmC数值的高低直接受到各个环节的影响,如服务器、外设(如硬盘或RAID)、服务器端操作系统、数据库软件、客户端及其操作系统、数据库软件和网络连接等。因此,如何解读tpmC数值会因不同的采购需求有非常大的差异。例如,在很多厂家的TPC测试系统中,服务器的价格只是系统总价格的25%或更小,而硬盘的价格有可能占到总价格的30%以上,因为TPC-C要求被测系统必须保存180天的事务记录(这一趋势从一些最新的TPC-C测试结果来看,会愈演愈烈)。如果同样的服务器被用到用户的环境中,厂家的tpmC值就意义不大,因为用户的实际系统与厂家原来用于TPC测试的系统大不一样。当同样的主机用在不同的系统中时,tpmC值可能有相当大的变化,现在许多用户还没有意识到这一点。尤其需要服务器采购用户注意的是,tpmC指标更多的是衡量从客户端到终端网络的性能区域,而不是通常误认为的服务器到企业端网络的性能。由此可见,如果用户是建立一套全新的业务系统,那么无妨多借鉴tpmC的性能指标,如果只是采购某种或某些硬件设备,则需要参考更多的指标。我们看到,随着处理器技术的不断创新,市场上各个厂商服务器性能在不断提升,例如去年11月惠普公布了一项TPC-C测试结果,配置了两颗主频为2.66GHz、总线速度达1333MHz的四核英特尔®至强®X5355处理器(两颗处理器,共8核,8线程)以及4MB二级缓存和64GB主内存,运行Microsoft Windows Server 2003 EE x64操作系统和Microsoft SQL Server 2005 Enterprise x64 Edition SP1数据库的HP ProLiant ML370 G5服务器取得了64位计算环境中240,737tpmC的TPC-C测试好成绩,平均每tpmC的成本仅为1.85美元。这是全球四核处理器服务器的第一个TPC-C基准测试成绩,成为了当时两路服务器、双处理器的最好成绩,而每tpmC 1.85美元的成绩也是基于双处理器平台的Microsoft SQL Server 2005数据库的最佳性价比。相比上一代产品,性能有3倍的增长,而与相同配置的双核处理器的服务器相比,性能有42%的提升。从中我们可以看到,处理器本身对于服务器的性能几乎起着决定性的作用。
TPC-H关注查询能力TPC-H测量在商业分析中决策支持系统(DSS)的性能。DSS是一种计算机应用程序,它分析商业数据展现出来使用户/管理者可以更容易得进行商业决策,例如供求管理、客户满意度分析、市场份额分析等。TPC-H 模拟了商业环境中的分析端,大量的数据被细化,可以帮助企业进行可靠的商业决策,其中包含一整套面向商业的特殊查询和并发数据修改内容。该基准中选择的查询和数据库中的数据都具有广泛的全行业关联性。这种基准测试所描述的决策支持系统可检查大量的数据,所执行的查询也具有很高的复杂度。并且,TPC-H会基于数据库的大小将结果分类。TPH的性能度量单位有两个,一个被称为"TPC-H复合式每小时查询性能单位"(TPC-H Composite Query-per-Hour Performance Metric - QphH@Size),反映的是系统处理查询的多方面能力,包括查询执行时选定的数据库大小、单个流提交查询时的查询处理能力,以及多个并发用户提交查询时的查询吞吐量。另外一个,是价格/性能比计量单位$/QphH。
SPEC CPU2006中的学问对于关注在线事务交易处理能力的用户来说,SPEC CPU2006也是一项非常重要的基准测试指标。就像前面提到的,SPEC CPU2006是一组针对CPU和内存的测试,它主要测试的对象是CPU、内存,不测试硬盘、I/O效率和网络等部分。因为SPEC CPU2006的程序都是针对单CPU的系统设计,因此,在多CPU系统上,如果要测试多CPU系统的效率,则是采取同时执行多个相同程序的方法,这个结果就是"Rate"。因此,同样有SPECint_rate和SPECfp_rate的测试结果。需要说明的是,"Rate"测试同时执行多个相同的程序,但程序之间并不会有关联,所以这是一种理论计算能力测试,并不代表实际并行计算能力。
#p#page_title#e#
第三节:为Web服务找最好的平台
毫无疑问,现在企业正越来越深入地进入Web计算时代,而Web服务器也已经成为绝大多数企业不可或缺的平台工具。SPEC Web2005和TPC-W两个基准测试都可以帮助用户有效衡量Web服务器的性能。SPEC Web2005有缺陷作为SPECweb99和SPECweb99_SSL的继承者,SPECweb2005延续了SPEC的传统,为Web用户提供客观的Web服务器系统性能基准测试。SPEC web2005测试的原理是,通过多台客户机向服务器发出Http Get请求,这种请求完全模拟Internet用户对服务器的访问,请求调用Web服务器上的网页文件,这些文件从数千字节到数兆字节不等。在相同的时间里,服务器回答的请求越多,就表明服务器对数据的处理能力越强,它的内存与CPU、PCI通道之间的传输带宽越宽,服务器的硬盘子系统和网络子系统传输速度越快,服务器的Web性能就越好。基于快速发展的Web技术,与上一代基准测试相比,SPECweb2005基准包括许多新增强特性,其中包括:测量并发用户会话。相关动态内容:包括PHP和JSP实施。使用两个并行HTTP连接请求页面镜像。多种标准化的工作负载:银行业(HTTPS)、电子商务(HTTP and HTTPS)和支持(HTTP)。使用If-Modified-Since请求模拟模拟器缓存效果。文件访问与今天的真实Web服务器访问模式匹配度更高。不过SPECweb2005也有缺陷--它不像TPC-C那样要求厂商提供测试环境的总成本,所以用户不能衡量单位计算所消耗的成本,因此对于用户的实际采购的指导意义相对弱一些。一个典型的SPECweb2005实验环境
TPC-W衡量电子商务环境
TPC-W是衡量服务器在电子商务环境中性能的另一项重要基准测试。TPC-W表现了在一个站点上多个服务器和WEB应用联合工作,服务于仿真浏览器的请求,它关注的焦点是整个系统。在一个TPC-W的测试中,主要的测试项目是每秒钟内完成的网络信息交换数量(WIPS),每WIPS的花费($/WIPS)以及下订单时的网络交换数量。另外在这些测试项目中,测试者必须提供所有主要子系统的性能参数,诸如处理器、内存、磁盘和网络等所有服务器审计运行中所需要的项目。TPC-W的负载包含针对不同网页的处理,每一个网页都是在电子商务中必要的操作。例如,用户可以测试使用任何浏览器进行的主页浏览、查询、观看查询结果、购买产品、确认订单、检查订单状况,甚至于执行管理操作。TPC-W提供一个从系统角度出发的电子商务解决方案,全面地体现独立操作系统性能。尽管有些方面还不完善,但是TPC-W确实为最终用户提供了许多平时得不到的原始数据和信息。第四节:Java应用服务器的基准Java从诞生的时刻,就因为它的方便性而注定了必定流行。最近,一项全新的SPECjAppServer2004基准测试性能世界记录诞生了--配置了两颗四核核英特尔®至强®处理器、装备Linux操作系统的浪潮英信NF280D(Inspur NF280D)服务器,在运行带有BEA JRockit 5.0 JVM的BEA WebLogic Server 10时,创下了同类配置的SPECJAppServer2004基准测试世界纪录,系统处理能力达到了1538.65JOPS@Standard(每秒处理事务数)。这个新的基准测试性能,对一个服务器来说,到底意味着什么?对企业又有什么意义呢?这先得从头说起。今天,许多应用软件都是用Java编写的,它的优势很明显,就是经过一次编写后可运行在不同的操作系统平台上,有很大的灵活性。但是,不同的Java版本运行在不同的硬件平台上,会反映出不同的性能。如何判定不同硬件平台运行Java程序的效率,是Java使用者所普遍关心的问题,而SPEC jbb2004就是一项被广泛采用的Java虚拟机性能基准测试,它的前身是SPEC jbb2000。SPECjbb2004是SPEC委员会制定的一套Java基准测试程序,用于测试Java服务器性能,但是并不考察到网络、磁盘I/O、和图形处理能力。SPECjbb2004模拟了三层客户/服务器模型结构,所有的三层结构都在一个JVM(Java虚拟机)内实现。 #p#page_title#e#这三层结构模拟了一个典型的商业应用结构:第一层是用户(客户端输入);第二层是商业应用逻辑;第三层是数据库。在SPECjbb2004里,第一层是用进程或线程模拟客户系统的随机输入;由Java类和Java对象形成的Btree模拟第三层的数据库;在第二层里是对Btree数据库中的数据进行操作,其机构图如下:SPECjbb2004基准测试借用了TPC-C基准测试的概念、输入产生、和交易模式。只不过,SPECjbb2004用Java类取代数据库中的表(Table),用Java对象取代数据库中的记录(Record)。SPECjbb2004主要关心的是第二层业务逻辑的处理能力,即考察用Java编写的应用程序运行在某台服务器上所表现出的性能。SPECjbb2004规则中要求只运行一个Java虚拟机(JVM)。在整个测试中,JVM(Java虚拟机)、JIT(即时编译)、操作系统的内核处理、CPU的整型处理能力、Cache的大小、服务器SMP的线性扩展能力等因素都会成为影响测试性能的关键。不过,测试值的好坏更多的依赖于Java虚拟机的性能,而且受系统带宽的影响较小。在硬件平台不变的情况下,JVM版本的升级会带来性能几倍的提升。SPECjbb2004反映的是Java虚拟机的性能,但在实际中该值常被用来说明服务器的扩展性,有些厂商甚至用它来证明服务器的性能是最优的、扩展能力是线性的。其实,SPECjbb2004基准测试完全是在内存中运行,不涉及I/O操作、网络操作等。如果用它来衡量服务器的整体能力和扩展性,这未免以点带面过于主观,TPC-C、Oracle ASB11i、SAP等这些基准测试更能贴近客户的实际情况,更能代表服务器的性能和扩展性。第三回:专用基准测试探悉世间万物,既有以广度取胜者,也有以深取胜者。在基准测试体系中,随着企业级应用的不断扩展和深入,一些应用很广泛的软件平台逐渐衍生出了自己专属的Benchmark体系,以方便用户衡量这些软件平台在某服务器上的运行效率,这就是专用基准测试。实际上,除了TPC、SPEC两大基准测试体系以及Linkpack等具有普遍意义的的基准测试以外,业界还创立了许多专用基准测试,用以衡量服务器运行某些专有应用的性能,目前较为广泛的包括SAP基准测试、Oracle基准测试、邮件服务器基准SPEC mail2001等。这里,我们以流行度很高、企业应用种也很普遍的Oracle基准测试为例,来熟悉一下专用基准测试是如何来对服务器性能进行度量的。Oracle应用标准基准包含两个主要的组件:在线组件和批处理组件。在线组件可执行多数用户都会频繁使用的通用用户界面(UI)流。批量流包含订单导入(Order Import)程序(大批量订单处理),主要用于按批量模式处理和导入订单。Oracle应用标准基准理事会(Oracle Applications Standard Benchmark Council)是一个由多家硬件企业、Oracle产品开发和Oracle产品线事业群的代表组成的机构。该机构推出的Oracle应用性能基准测试指标(Oracle Applications Standard Benchmark)是一种可比较的标准工作负载。硬件厂商可以使用这种基准测试对系统进行压力测试,使其能够满足较高水平的用户并发请求,并且在响应时间保持在可接受范围内的同时,获得尽可能高的用户数,使用户可以对不同系统配置上的Oracle应用性能进行对比。用户数可测量系统能够支持的并发Oracle应用用户数量,并且在支持这一用户数量的同时,系统仍然能够将响应时间保持在预先定义的最大值以内。用户进程是由他们所执行的事务类型来定义的,而每个用户都将保持一个最低的每小时事务率。事务率和工作负载的组合都不会随着系统负载或响应时间的增加而发生变化。Oracle应用标准基准可使用一系列选定的最常用Oracle应用模块来模拟真实的客户场景。有些事务的定义会对基准进行对比,这些定义是通过与实施顾问的协作而获得的,而且它们都具备OLTP、批处理和自助服务组件。后记:测试与应用的关系如果脱离实际,那就会沦为纸上谈兵。 #p#page_title#e#实际上,Benchmark只能作为参考,因为它本质上是个应用,除了对硬件环境有要求外,与系统的编译、应用的优化都是有关系的,换句话说,所有的Benchmark都是基于最优化环境产生的,这一点用户心里一定要清楚。经过近二十年的发展,Benchmark体系已经相当成熟了。尽管如此,相对于用户应用环境的千差万别,Benchmark是一个最优化环境中产生的"实验室结果",并不能完全反映到用户的实际应用中。所以,成熟的心态,是科学地、全面地看待并应用Benchmark。1. 基准测试作为专项指标,并不全面任何一个基准测试都只能反映系统在某一方面的性能,而不可能反映系统的全面特性,比如SPECfp测试的是浮点能力,而不能反映系统I/O上的特性。即使是某些应用的专用基准测试程序(如SAP-SD),也同样不能完全反映用户的实际生产环境。所以在设备选型过程中,首先要做的是认真分析应用的特点,特别是在高负载下的性能瓶颈分析,以此采用相应的基准测试指标作为选型的重点。最能够反映服务器适用性的依然是实际(或仿真)应用的线上测试。2. 考虑系统性能的线性能力在多处理器系统中,随着处理器数目的增加,服务器性能往往不能同步线性增加,在OLTP、浮点等运算中,双处理器的性能往往只是单处理器的1.4到1.7倍,而4路MP服务器、8路服务器的线性能力会更弱。在英特尔®至强®(Xeon)及安腾®处理器当中,通过超强的并行能力及大量的板上资源,使得处理器的线性能力得到加强。在选型过程中,用户如果使用多处理器或多服务器并行的应用,应该对处理性能的线性能力给以足够关注,在基准测试报告中会给出不同配置下的结果。3. 基准测试只反映性能,但不是全部基准测试可以帮助用户判断系统的性能特征,但适用性本身不止是性能,特别是在大型系统中,其它一些因素,包括耗电量、散热、可管理能力等等,直接影响用户的拥有成本及维护难度,应予以充分考虑。Tips 1:基准测试是系统性能的良好指标,只要你能:了解选择的基准测试测量对你重要的性能特性保证测试的硬件和软件反应需求保证性能测试的准确与公平每个基准测试只能测量系统某个或某些方面的性能。尽量使用已有的基准测试,而不要建立自己的基准测试。基准测试数据仅仅是做出决定的一部分指标,其它方面,如可用性、服务、可靠性、策略也需要被考虑。Tips 2:对于将服务器系统用于科学运算的多数高性能计算机用户来说,在采购服务器的时候,对于厂商提供的SPECfp2000浮点运算基准测试要给与重点关注,而对于一般的商业用户来说,一个计算机系统的浮点运算能力强或者弱,并没有太大的实质意义,这个用户群体更应该关注注入TPC-C等在线事务交易处理性能。Tips 3:TPC-C虽然客观的反映了各个计算机厂商的系统处理性能,并且基准测试也在不断完善以更加贴近现实应用的交易环境,但是仍然无法与纷繁多样的各类实际应用完全吻合;而且参加TPC测试的主机系统都做了适当程度的系统优化。因此,在实际业务应用系统选择主机服务器乘载体时,必须考虑到多方面的因素,以最大程度的做到适合应用系统的生产需求。Tips 4:通过加大L2缓存数量和使用更快的内存升级系统,会有助于优化Web服务器的性能。因为Web服务器主要运行操作系统代码,系统应该使用最新优化版本的驱动程序和Web服务器软件通过使用更大缓存尺寸和更快的内存升级系统,会有助于邮件服务器功能的发挥,同时削减内存延迟。数据库服务器具有大量的数据共享,并需要足够的总线吞吐来高效运行。系统需要平衡配置才能将数据访问分散在系统内部不同总线上。使用带有最大缓存数量的处理器和相干性过滤器(如果可以用)会降低系统内引起相干错过的因素,并提高系统性能。 Tips 5:英特尔平台和基准测试