1.揭开基准测试神秘面纱
基准测试作为度量计算机系统性能和价格的一种手段,逐渐为软件测试界所认识和熟悉。之所以认为基准测试很神秘,一是对其没有全面清晰的认识,二是不知道如何去实践。目前有两大基准体系:TPC和SPEC。
(一) TPC
TPC(Transaction Processing Performance Council,事务处理性能委员会)组织的功能是制定商务应用基准程序(Benchmark)的标准规范、性能和价格度量,并管理测试结果的发布。TPC不给出基准测试程序的代码,而只给出基准测试程序的标准规范。任何厂家或其他测试者都可以根据规范,最优地构造出自己的测试系统(测试平台和测试程序)。为保证测试结果的客观性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(Full Disclosure Report),包括被测系统的详细配置、分类价格和包含五年维护费用在内的总价格。该报告必须由TPC授权的审核员核实,通过后的结果会公开发布,这样得到的结果作为厂家所谓的标称值。TPC先后推出了多套基准程序的规范,其中TPC-C在线事务处理的基准程序认可度和使用率最高,主要性能指标单位tpmc(transactions per minute),即每分钟处理的事务数;C指TPC中的C基准程序。价格是指系统的总价格,单位是美元,而价格性能比则定义为总价格/性能,单位是$/tpmc。
(二)SPEC
与TPC体系注重在线处理能力和数据库查询能力不同,SPEC (the Standard Performance Evaluation Corporation标准性能评估机构)服务器应用性能测试是一个全面衡量Web应用中java企业应用服务器性能的基准测试。在这个基准测试中,系统模拟一个现代化企业的电子化业务工作,如客户定购查询、产品生产制造管理、供应商和服务器提供商管理等,给系统以巨大的负载,以全面测试运行典型java业务应用的服务器性能水平。由于它体现了软、硬件平台的性能和成本指标,被金融、电信、证券等关键行业用户作为选择IT系统一项权威的选型基准测试指标。
以上两大基准体系只是提供了规范和基准程序,似乎离我们还是很遥远,更多时候只有实力雄厚的厂商会完全按照这些规范来实施测试,最终将测试结果在国际上公布,作为其产品的销售卖点。那么我们如何在实践中运用或者借鉴这些标准,作为我们的软硬件选型提供依据呢? 这将引入基准测试的“本土化”问题。
2.为何要将基准测试“本土化”
就企业对服务器选型来说,仅仅靠“国际通用”的度量作为选型依据是不够的,因为服务器最终要服务于特定的软硬件环境下,不同的网络、数据库及应用系统等,服务器的表现性能都会有差异,因此在进行性能评价时,通用的度量有可能不够准确,可以作为参考,但不是选型的唯一依据。从另外一个角度,我们可以借鉴基准测试的思想,根据实际情况进行定制统一的规则,来横向比较服务器的处理能力,或者说将基准测试进行“本土化”。下面就中国移动服务器选型测试来介绍如何去实践基准测试。
3.最佳实践——中国移动服务器选型分析
由于业务不断扩展,中国移动每年需要对小型机服务器、存储设备等集中采购,对于众多投标设备,应该如何选择并对设备划分档次成为迫切需要解决的问题。厂商提供的TPC或SPEC标称值只能在某些程度上反应设备的处理能力,但是这些测试结果是一个国际通用的结果,与中国移动的业务关系不大,因此需要重新定义测试的评价标准。通过选取统一的性能评价标准,对所有的小型机服务器,在相同业务、相同环境下进行性能综合测试,评价各款服务器在相同性能压力模型下获得的最大处理能力。
3.1测试内容
小型机服务器的性能测试选取中国移动的业务支撑系统,简称BOSS,作为本次测试的软件系统,根据交易量规模、交易处理类型从中抽取若干个关键交易,实施压力测试,结果作为此次小型机性能评估依据。业务选取原则是:
a) 业务交易量较大,对BOSS性能产生较大影响;
b) 充分考虑不同业务处理方式的性能影响,如对数据库增、删、改、查操作;
基于以上原则,抽取如下业务,作为被测对象:
1) 开户;
2) 详单查询;
3) 营业缴费;
4) 资费变更;
3.2测试方法
对每款小型机服务器,主要利用Loadrunner自动化测试工具,通过模拟大量虚拟用户对上述典型业务操作,不断对服务器进行负载压力测试,直至响应延迟不能满足要求的性能点,确定此时服务器的交易执行指标和各项资源监控指标,从而综合比较各款服务器的性能情况。测试场景如下:
压力测试将上述业务按比例混合后,在一个场景中进行负载压力测试,它们各自的业务比例和响应时间的要求如下:
在测试终止条件以不断加压的方式,直至响应延迟不能满足要求的性能点,作为终止条件。其中,判断“响应延迟满足要求?”是由以下公式决定。
当“时延加权值”大于90%,表示压力测试成功;反之,则表示压力已经超过了被测设备的性能上限。
测试过程分为两个阶段,第一阶段中设置一个较大的步长,测试出被测设备的大致性能范围。其中,初始值可以由参测厂家的工程师指定。第二阶段中将在最后两步中寻找被测设备准确的性能,精度为10个用户。测试压力模型如下:
3.3测试环境