警惕某些服务器厂商在 TPCC 性能指标上搞猫腻

先说我了解的一个真实案例:某单位要建立一个系统,设计容量是 2008 年要达到 1500 万客户的规模,在花费巨资(将近 100 M $)建设起此系统后,运行只有几个月,客户量也只达到几十万,厂商就说此系统容量不够,要花数 M $ 要扩容,并声称不是拍脑袋是,按 TPCC 计算的结果 …

以前只大致了解 TPCC 指标的一些情况,平常也就看看 By Performace 和 By Price/Performace 的 Top 10 列表,了解一下各厂商的实力和产品的情况,这次对 TPCC 进行了一下深入了解,发现了一些容易被厂商搞猫腻的地方。

TPCC 简单的来说,就是事务处理性能委员会 TPC 组织针对联机数据库应用系统(OLTP)制定的一个综合性能考评指标,它模拟了一个批发 商的货物管理环境,有标准的数据库结构(Schema),可以很容易的扩展,在此系统中,主要有五类交易:

1. 新订单(New-Order)  
2. 支付(Payment )  43%(最小比例)
3. 订单查询(Order-Status)  4%(最小比例)
4. 交付(Delivery)  4%(最小比例)
5. 库存查询(Stock-Level)  4%(最小比例)

因为 TPCC 指标值主要是衡量“新订单”交易的数量,所以厂商都会趋向于增加新订单交易的数量,这样并不满足实际的应用场景,所以 TPCC 的规范中指定了后四种交易数量的最小比例,这样意味着 “新订单” 的数量最多只能占到45%(这个 45% 不知出于什么原因,在很多 TPCC 的指标介绍中并没有提及)。

这就说明了:如果一台机器有 1000 tpm (Transactions per Minute),那么它实际上处理的交易(请求)为 1000/45% = 2222 ,而实际上大多数厂商在面对用户估算应用系统需要多少个 TPCC 的服务器的时候,是计算所有交易量的,这样带来的评估结果是用户至少买比实际需要大一倍性能容量的机器,获得利益的谁呢?当然是服务器厂商,越高 TPCC 值的机器,价格越高,性价比也一般要偏小。

此外,服务器厂商还容易在以下方面愚弄客户:

1、交易复杂度(用户的一个交易约等于多少个 TPCC 的标准交易),某国际著名的服务器厂商建议此值取 10 – 20 ,这个值也忒大了点, 在 TPCC 的场景,交易也不是很简单的,和实际的应用交易差别并不是很大。

2、按一些峰值指标来计算性能,实际上,这些峰值只是在极少数情况下出现,所以在计算时,应乘以 80% 的系数。

3、预留容量,很多厂商建议预留容量,甚至达到一半,这有点过份,在实际容量要求增高的时候,可以通过服务器的横向扩展来纵向扩展来满足应用要求,何必为未来五年的要求,要在眼下一下子要做全部的硬件投资呢? 何况硬件的价格在不断下降呢。

现在回头来看刚开始的案例,除了说他们愚弄客户,贪得无厌之外,还有什么可说的呢?

BTW:在了解 TPCC 的同时,我整理了一个 TPCC 介绍的 ppt ,其中包含了一个自己总结的估算应用系统所需 TPCC 的公式,这里无法增加附件,有意者可以留言索取(2005.12.31 前)。

“警惕某些服务器厂商在 TPCC 性能指标上搞猫腻”的159个回复

  1. 看到这个已经很久了,也留过email,但是没有收到ppt。不知道现在还是否有效了,如果可以,请mail给我一份:[email protected]
    我非常感兴趣,谢谢了!

  2. 目前厂家自己设计的tpc-c测试集规范性有待考证,但是楼主对tpmc的理解有些误差,tpmc的定义是系统每分钟处理的new-order交易,不需要乘以45%,况且新订单数是小于等于45%,不一定就是45%,这样乘的话也不准确。

  3. 不好意思,看错了,楼主说的是综交易量为1000/45%,约等于2222,那没错,呵呵

  4. 服务器厂家只能提供部分机型的TPCC值,如果选择的机型不一样,就要根据测试机型公布的TPCC值进行换算:
    选择机型的TPCC值=(选择机型CPU数量/测试机型CPU数量)*测试机型公布TPCC值*(选择机型CPU主频/测试机型CPU主频)
    这个公式是公认的推算公式吗?还有其他更权威的推算公式吗?

评论已关闭。