众所周知,微软在OLTP基准测试方面已经从TPC-C转向了全新的TPC-E。TPC-C包括5种存储过程调用(stored procedure calls):新订单、付款、送货、订单状态和库存水平。其结果是用每分钟完成的交易次数来衡量的,即rate of New-Order calls。TPC-C平均每个新订单需要执行2.22次调用。
而全新的TPC-E数据类型更加丰富,由3类扩展为10类,模拟的交易条件更复杂。每一次交易都要对客户端的WEB页面作出响应,和现代的数据密集型应用相仿,也是由多个存储过程调用组成。对于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,079tpm-C。这相当于每秒执行6785次交易,由于每次交易要做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时间。
我之所以关注SQL Batches/sec和每次调用CPU消耗时间(average CPU per call)这两个指标,是因为它们会影响到性能分析。对于一台满负荷运转的服务器来说,SQL Batches/sec值比较小的话,意味着每次调用都要消耗更多昂贵的CPU资源,这有可能是因为所执行的操作本身就比较消耗CPU资源,或者是CPU在指令编译过程中浪费了资源;而如果SQL Batches/sec值比较大的话,意味着在数据库查询/索引优化方面的空间不太大,关键是尽量去减少网络传输延迟。但受测试规则所限,网络调优不适合TPC基准测试。
TPC-C和TPC-E存有很大的差别。在TPC-C中,最常见的两种调用是新订单和付款。新订单大约有11行数据,可执行选择、更新和插入等操作,每个新订单包含10列字段。付款由3行更新和1次插入组成。TPC最重头的部分也就是对数据表的插入和更新。在TPC-C中,只有一次组合查询。而在TPC-E中,除了一般的操作外,还包含了多表连接查询,更加复杂。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
IBM八路六核心系统性能率先突破100万TPM
IBM今天发布了两款基于英特尔六核心Xeon处理器的服务器产品,在TPC-C基准测试中率先突破了100万TPM(每分钟交易数)。