tpc-c 服务器性能,TPC-E和TPC-C测试结果比较之我见

【IT168 专稿】众所周知,微软在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,079 tpm-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中,除了一般的操作外,还包含了多表连接查询,更加复杂。(本文编译自Joe Chang的博客:http://sqlblog.com/blogs/joe_chang/archive/2008/03/07/comments-on-tpc-e-and-tpc-c.aspx)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值