服务器在线9月16日报道 2007年3月,总部位于美国的事务处理性能委员会(Transaction Processing Performance Council)宣布批准了名为TPC-E的全新服务器测评标准。一经推出,便受到诸如IBM、DELL等大型服务器厂商的追捧。如今TPC测试模型已经越来越被大家所熟悉和接受,尤其是TPC-C测试模型,更是在IT圈中"家喻户晓"。
那TPC组织又是缘何推出新测试模型TPC-E?同样是针对OLTP数据库模型的测试标准,这个测试到底跟TPC-C是什么样的关系呢?云起云落,推陈出新,TPC-C与TPC-E的内容与关联将在下面的文章中为大家一一阐述。
曾经雄踞OLTP测试历史舞台的TPC-C
OLTP测试模型一直是TPC组织的重点测试标准,TPC-C的前身TPC-A就是TPC组织发布的第一个测试标准。TPC-C发布于1992年7月,至今已有16年的历史。TPC-C测试模拟了一个比较复杂的OLTP应用环境,其操作环境由一系列仓库组成,每个仓库有若干个终端,分别代表销售站点和查询站点,并给出两个基准测试指标–性能指标tpmC和性价比指标$/tpmC。
TPC-C测试的系统所执行的事务处理包括3种"前台"交易和2类"后台"事务处理。3个"前台"交易分别为:送入新订单、查询订单状态和支付款项。2个"后台"事务处理分别为:库存水平查询和产品发送。
每个"后台"事务处理的工作量比"前台"交易大得多。例如,库存水平查询需要扫描仓库的整个库存,从中找出已经脱销或即将脱销的货品。每个终端上都需要运行远程终端仿真程序(RTE),用于在性能测试期间内按照规定的混合比例连续向服务器发送5种作业。
系统通过连续执行各个终端上RTE发送的5种作业,模拟企业分布式数据库应用系统。每种作业都有一个时间阈值,规定相应类型作业最长的系统响应时间。例如,送入新订单作业的阈值为5秒,即送入新订单的系统响应时间不能超过5秒。系统在保证执行各类作业的时间都不超过阈值的条件下,每分钟所执行的送入新订单作业量即为系统的tpmC基准测试指标。系统的总成本除以tpmC值,即为每个tpmC的价格,称作量度系统的性价比。
TPC-C逼真的模拟了OLTP应用,在发布后逐渐得到广大用户的认可,使用tpmC作为其计算机系统性能评价体系基础的用户数量逐年上升,这大大地鼓舞了软硬件厂商参与TPC-C测试的热情,纷纷斥巨资进行这一测试,随之而来的是测试规模的不断扩大,其中以磁盘数目为最,以目前排名第二的HP测试成绩来说,其中使用了7000多块硬盘,总成本达到了将近1200万美元。
不过,随着信息产业的不断发展,TPC-C的一些问题也慢慢暴露出来。首先,随着B2B、B2C等新型应用逐渐兴起,TPC-C现有的仓库管理系统测试模型已经距离目前的OLTP用户应用模式越来越远,5种作业需求也不足以覆盖用户现有的典型操作;其次,众多的测试设备投入使得TPC-C测试给厂商带来了较大的压力,这并不是TPC组织愿意看到的,因此TPC组织于2007年3月推出了全新的OLTP测试标准–TPC-E,意在用这个测试标准取代TPC-C测试,从而对上述问题起到解决作用。但取代过程不是一蹴而就的,目前状态是TPC-C与TPC-E测试并存。
推陈出新、平易近人的TPC-E测试
TPC-E在测试模型上进行了巨大的革新与改进。TPC-E是以美国纽约证券交易所为模型,该测试模拟了一系列后端处理数据以及证券公司前端客户在股票交易市场的典型行为–账户查询、在线交易和市场调研。该模拟证券公司也与外界的金融市场相联系,根据市场变化执行指令并更新相关的账户和市场信息。它不仅包含了C2B的环境,还包含了B2B的环境,这种商业模型更为人们熟悉也更容易理解,同时更贴近现有用户的应用。如下图所示:
TPC-E所模拟的实际应用
针对以上模型,TPC-E建立了比TPC-C更为复杂的数据库表结构,通过下表的对比我们就能明显的看出两者之间的差别:
项目 |
TPC-E |
TPC-C |
表 |
33 |
9 |
表列 |
188 |
92 |
表最小列数 |
2 |
3 |
表最大列数 |
24 |
21 |
数据事物类型 |
Many (UID, CHAR, NUM, DATE, BOOL, LOB等10种) |
4(UID, CHAR, NUM, DATE) |
主键 |
33 |
8 |
外键 |
50 |
9 |
带外键的表数 |
27 |
7 |
约束 |
22 |
0 |
与TPC-C测量事务类型只有四种相比较,TPC-E的事务类型更加丰富,数量达到了十二种,其中包括交易查询事务、交易执行事务、交易结果更新事务等(具体参见下表)。前10种事务按照一定比例混合即成为最终测试事务合集。
在这12种事务中数据维护事务、交易清理事务较为特殊,他们不是由客户端发起请求,而是数据库自身维护所要完成的工作,数据维护事务每秒钟执行一次,而交易清理事务每次测试开始时执行一次。每个事务对应数据库管理系统中的一个或多个带输入和输出参数的存储过程,单个存储过程称为一个事务帧。
TPC-E测试标准要求每项事务中90%的响应时间要在某一个指定时间内完成,这是出于在实际环境中对客户真实应用情况的一个考虑。虽然不同的事务所要求的响应时间约束也不同,但基本上都是要求在3秒钟内完成。
事务描述 |
事务帧数 |
90%响应时间约束(秒) |
比例 |
备注 |
经纪人交易统计事务 |
1 |
3 |
4.9% |
证券公司执行 |
客户价值统计事务 |
3 |
3 |
13% |
证券公司执行 |
市场观察事务 |
1 |
3 |
18% |
证券公司执行 |
证券信息事务 |
1 |
3 |
14% |
证券公司执行 |
交易查询事务 |
4 |
3 |
8% |
证券公司执行 |
交易执行事务 |
6 |
2 |
10.1% |
证券公司执行 |
交易状态事务 |
1 |
1 |
19% |
证券公司执行 |
交易修正事务 |
3 |
3 |
2% |
证券公司执行 |
市场跟踪事务 |
1 |
2 |
1% |
交易所执行 |
交易结果更新事务 |
6 |
2 |
10% |
交易所执行 |
数据维护事务 |
1 |
N/A |
N/A |
数据库维护事务,与客户操作无关,每60秒自动执行一次 |
交易清理事务 |
1 |
N/A |
N/A |
数据库维护事务,与客户操作无关测试开始时执行一次 |
虽然TPC-E使用了更多的表结构及事务,但由于TPC-E使用了更有效的存储过程,从而减少了对磁盘I/O的利用,降低了系统对磁盘数目的要求–使用同一数据库服务器,TPC-E相比TPC-C可以减少2/3的硬盘数目,这对于降低参加测试系统的整体费用具有非常重要的意义。
从实际测试过程上看,TPC给出基准程序的标准规范(Standard Specification),参测的厂商则根据TPC组织公布的规范标准,最优地构造出自己的系统,使用最优的平台和最高效的应用程序。为保证测试结果的客观性,同TPC-C一样,参测厂商必须提交给TPC一套完整的报告,包括被测系统的详细配置、分类价格和包括3年服务费用在内的总价格等,该报告必须由TPC授权的审核员核实。
与TPC-C一样,TPC-E的测试结果也主要有两个指标:性能指标(tpsE, transactions per second E)和性价比(美元/tpsE)。其中,性能指标是指系统在执行多种交易时,每秒钟可以处理多少交易(tpmC是以分钟为单位),其指标值越大越好,最终测试成绩 tpsE=交易执行事务总数/ Measurement Interval(测量区间);性价比(美元/tpsE)则是指系统价格与前一指标的比值,数值越小越好。
综上所述,TPC-E相比TPC-C有特点如下:
1、权威测试的"最新版本":TPC-E以业界权威的TPC-C测试为基础,进行了改进与完善,使得其更贴近目前用户的应用,对于行业客户选购及部署IT系统平台更具指导作用。
2、超现实的仿真性:TPC-E测试更加真实,其测试结果对金融、证券等高端行业的服务器应用具有重要的参考价值。
3、严格的结果审核过程:这保证了测试结果的正确性、严肃性以及用户的可用性。
用户的应用日新月异,未来服务器发展将一如既往坚持效能至上的路线,同时高端服务器在关键行业的关键应用上将占据市场,TPC-E无疑将成为衡量服务器产品性能和应用价值的重要测试依据,成为IT业界测试的又一个权威。