服务器 频道

TPC-C与TPC-E的结果是否有可比性?

    【IT168 专稿】首先我们应该了解,TPC-E和TPC-C所采用的模型是不一样的。跟TPC-C相比,TPC-E更复杂,它模拟证券经纪公司而不是批发商的流量和交易模式,从C/S架构过渡到B/S架构,数据类型从原来的3种扩展到10种,事务类型从原来的5种增加到12种,数据表由原来的9个增加到了33个,数据库构成更加复杂,也更加符合实际应用,当然对服务器的性能要求也更高了。

    其次,TPC-C采用的性能指标是tpmC,是指系统在保证执行各类作业的时间都不超过阈值的条件下,每分钟所执行的送入新订单作业量。而TPC-E采用的性能指标是tpsE,指系统在执行多种交易时,每秒钟可以处理多少交易(tpmC是以分钟为单位)。那么,这两种指标之间是否有可比性呢?

    微软公司软件开发工程师Joe Chang在其博客http://sqlblog.com/blogs/joe_chang/archive/2008/03/07/comments-on-tpc-e-and-tpc-c.aspx中谈到了这一问题。

    他在博客中写到,TPC-C平均处理一个新订单需要执行2.22次数据库存储过程调用,而TPC-E平均每次交易有25.4次数据库存储过程调用。他比较了HP ProLiant DL580 G5 和 IBM x3850分别参与TPC-C和TPC-E的结果。

    HP ProLiant DL580 G5 配置4颗四核 Xeon X7350 2.93GHz 处理器,其TPC-C测试结果是407,079 tpm-C。这相当于每秒执行6785次交易(407,079/60秒),由于每次交易要做2.22次调用,也就是说每秒钟可执行15,062次 SQL Batches批处理,反过来说,每次调用大约需要消耗1毫秒的CPU资源(计算方法是Average CPU-sec / call = 处理器利用率*处理器数量/ SQL Batches/sec,这里处理器利用率是100%,由于是四路四核,所以处理器数量是16)。

    IBM x3850同样是基于4颗四核 Xeon X7350处理器,其TPC-E的测试结果是479.51 tps-E(每秒完成交易次数),相当于12,180 SQL Batches/sec(计算方法是479.51*25.4),也就是说平均每次调用需要消耗1.2毫秒的CPU时间。

    Joe Chang之所以关注SQL Batches/sec 和每次调用CPU消耗时间(average CPU per call )这两个指标,是因为它们会影响到性能分析。对于一台满负荷运转的服务器来说,SQL Batches/sec值比较小的话,意味着每次调用都要消耗更多昂贵的CPU资源,这有可能是因为所执行的操作本身就比较消耗CPU资源,或者是CPU在指令编译过程中浪费了资源;而如果SQL Batches/sec值比较大的话,意味着在数据库查询/索引优化方面的空间不太大,关键是尽量去减少网络传输延迟。但受测试规则所限,网络调优不适合TPC基准测试。

    Joe Chang在博客中补充说,TPC-C和TPC-E存有很大的差别。在TPC-C中,最常见的两种调用是新订单和付款。新订单大约有11行数据,可执行选择、更新和插入等操作,每个新订单包含10列字段。付款由3行更新和1次插入组成。TPC最重头的部分也就是对数据表的插入和更新。在TPC-C中,只有一次组合查询。而在TPC-E中,除了一般的操作外,还包含了多表连接查询,更加复杂。

相关活动:

去ChinaUNIX社区参与有奖讨论: TPC-E对服务器采购有多大参考价值?

活动时间:9月8日-9月21日

入口: http://bbs.chinaunix.net/thread-1263546-1-1.html

0
相关文章