【IT168 专稿】谈到OLTP(在线事务处理)数据库服务器采购,相信很多人会想到TPC-C这样一个权威的性能测试标准。但在去年3月,TPC组织(交易处理性能委员会,Transaction Processing Performance Council)却宣布推出新的TPC-E,以取代有14年历史的TPC-C。在过去一年多来,IBM、浪潮、戴尔、NEC、富士通、UNISYS等厂商在TPC-E标准下提交了16次测试结果,TPC-E这样一个全新的数据库服务器评测标准也开始受到越来越多人的关注。本文将对“TPC-C与TPC-E的比较,TPC-E对用户的参考价值,影响TPC-E性能的因素”等方面进行分析,希望能够帮助更多人了解TPC-E,在实际采购决策过程中更好的参考TPC-E结果。
TPC-C与TPC-E,孰优孰劣
“TPC-C与TPC-E相比,哪一个更权威、更实用?”这是一个萦绕在很多刚刚接触TPC-E的人的脑海中的一个基本问题。也许你会说,如果TPC-E不够好,TPC组织为什么要用它来取代TPC-C呢?但不可否认的一个事实是,TPC-C从1992年起已经实行了16年,而TPC-E从去年3月推出还只有一年半的时间,很多用户知道TPC-C,却不了解TPC-E。我想要解决这个问题,首先得分析一下TPC组织为什么要用TPC-E来取代TPC-C。
原因主要有两个:一是TPC-C的模型已经老化,二是TPC-C的测试成本太高。
TPC-C的模型还是十几年前的东西——过时的C/S架构,模拟的是批发商系统,简单的数据库和业务逻辑。而当今WEB2.0时代的OLTP应用,大多采用流行的B/S架构,需要更大规模的并行处理能力,数据库和业务逻辑也更加复杂。显然,如果再用过去的模型来模拟今天的应用环境,确实显得有些不合时宜了。
为此,TPC-E对模型进行大刀阔斧的创新——模拟证券经纪公司而不是批发商的流量和交易模式,从C/S架构过渡到B/S架构,数据类型从原来的3种扩展到10种,事务类型从原来的5种增加到12种,数据表由原来的9个增加到了33个,数据库构成更加复杂,也更加符合实际应用,当然对服务器的性能要求也更高了。
表1:TPC-E与TPC-C数据库比较
再来看看TPC-C的测试成本。由于TPC-C的模型比较简单,服务器在测试时只是做一些简单的数据查询、修改和删除操作;而在多核计算盛行的今天,针对这种应用,强大的服务器CPU容易处于等待数据的空闲状态,I/O因而成为严重瓶颈。为了提升I/O,保证测试性能,服务器厂商往往需要动用大量的内存和磁盘。比如IBM和惠普公司在获得最高分的TPC-C测试时都使用了7000块硬盘。这使得参加TPC-C测试所需要的成本高达千万美元。如此巨额成本大大提高了TPC-C的门槛,将很多小型服务器厂商拒之门外。而且,从用户角度来看,实际应用可能并不需要如此海量的内存和磁盘,TPC-C结果的适用性也受到了质疑。
而TPC-E则不同。由于数据库更加复杂,要执行的事务处理更多——TPC-E标准中定义的事务有12种,每个事务对应数据库管理系统中的一个或多个带输入和输出参数的存储过程,而且会涉及到不同表间的关联,这使得服务器CPU容易处在“有事可做”的状态,因而对内存和磁盘I/O的要求也相对小一些。浪潮服务器方案技术经理乔鑫告诉IT168记者,TPC-C的硬件投入比TPC-E要高出3倍以上,由于TPC-E所需要的磁盘数量仅是TPC-C的十分之一,从而大大降低了服务器厂商搭建硬件环境的成本。
图1: TPC-E测试模型之物理结构
TPC组织负责TPC-E推广的安德里亚斯此前在接受媒体采访时也曾表示,新测试费用比较廉价的部分原因是对硬件的要求更加合理了,另外一个原因就是TPC将提供软件的源代码,取代了要求测试人员自己编写代码。
可见,模型更新和成本降低让我们看到了TPC-E新标准的魅力:更加逼近现实,更有代表性,会更具广泛性。