如何实施Benchmark标准测试(之一)---问题的提出及Tpc-C标准

原创 2004年11月04日 08:24:00

如何实施Benchmark标准测试

---问题的提出及Tpc-C标准

Last Updated: Monday, 2004-10-18 16:36 Eygle
    

 

1.问题的提出

不管你实施怎样的一个系统,你可能都考虑过这样的一系列问题:

我应该采购怎样的设备?
我的系统性能如何?
我的系统能够承受多少用户?
我的系统能够承受多少并发?
性能问题会在何时出现?
我将在何时升级?


显然,回答这些问题并非那么简单,更多的人是根据经验给出一个经验值,用来评估系统.
但是在大系统设计过程中,经验显示是不足够的,你必须拿出足够的证据来说明你的架构,你的系统必须在理论上能够满足用户的需求.

到这里我们已经看到,一个最重要的内容被引入了,那就是:用户需求.
这符合经济规律,有需求才有发展,需求推动一切.于是也就有了今天我们要讨论的标准测试(benchmark).

最近一段时间,一直参与一个大系统的方案设计、规划与测试,现在把一些心得写出来,供大家参考.

2.TPC组织

关于Benchmark测试,最有名的就是TPC(Transaction Processing Performance Council,事务处理性能委员会)组织了.你可以在其
官方站点 www.tpc.org 获得更为详细的信息.TPC组织成立于1988年,由一些在计算机领域提供软硬件系统或者相关解决方案的原厂商组
成,会员从成立之初的8家公司发展到目前的50余家,IBM、NCR、HP、Oracle、Microsoft等国际著名公司均是其会员。总部设在美国,
并对全世界开放,但迄今为止,TPC组织绝大多数会员都是美、日、西欧的计算机软硬件大公司.

作为一家非盈利性机构,事务处理性能委员会(TPC)负责定义诸如TPC-C、TPC-H和TPC-W基准测试之类的事务处理与数据库性能基准
测试,并依据这些基准测试项目发布客观性能数据。TPC基准测试采用极为严格的运行环境,并且必须在独立审计机构监督下进行。委员会
成员包括大多数主要数据库产品厂商以及服务器硬件系统供应商。

TPC不给出基准程序的代码,而只给出基准程序的标准规范(Standard Specification)。
注意,这里我们提出在Benchmark测试中最重要的一个内容:标准规范.
你可能听到很多人这样对你说,TPC-C值不具有任何实际意义,任何测试都无法模拟真实生产环境中的负荷情况。
这总说法自然有其道理,但是未免片面了,或者说这种说法实际上曲解了TPC-C等标准测试的本意.
我们说Benchmark测试中最重要的是标准规范,也就是说,其实工具等因素是不重要的,只要大家都是用同一标准规范、同一工具进行系统
测试, 那么测试结果也就具有了比较意义.

从这个意义出发,benchmark测试实际上就成了各个厂商展示其技术实力的舞台.任何厂家或其它测试者都可以根据TPC组织公布的规范标准,
最优地构造出自己的系统,使用最优的平台和最高效的应用程序. 所以你可能听Oracle这样攻击过DB2,Oracle说:IBM进行的TPC测试使用的
都是Oracle数据库,而不是他们自己的DB2. 其实这个说法也是片面的,TPC-C测试的是OLTP的性能,而我们知道DB2在数据仓库方面才是真正
强大的.


为了保证测试结果的客观性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(FullDisclosure Report),包括被测系统的详细配置、分
类价格和包含五年维护费用在内的总价格.该报告必须由TPC授权的审核员核实(TPC本身并不做审计). 现在全球只有几 个审核员,全部在美国.

TPC已经推出了四套基准程序,被称为TPC-A、TPC-B、TPC-C和TPC-D。其中A和B已经过时,不再使 用了.TPC-C是在线事务处理(OLTP)的
基准程序,TPC-D是决策支持(DecisionSupport) 的基准程序。TPC后来尝试推出的TPC-E,TPC-S,最终被放弃。

3.TPC-C

我们重点关注的是TPC-C测试.

TPC-C是一种旨在衡量联机事务处理(OLTP)系统性能与可伸缩性的行业标准基准测试项目。这种基准测试项目将对包括查询、更新及队列式
小批量事务在内的广泛数据库功能进行测试。许多IT专业人员将TPC-C视为衡量“真实”OLTP系统性能的有效指示器。

TPC-C基准测试针对一种模拟订单录入与销售环境测量每分钟商业事务(tpmC)吞吐量。特别值得一提的是,它将专门测量系统在同时执行其
它四种事务类型(如支付、订单状态更新、交付及证券级变更)时每分钟所生成的新增订单事务数量。独立审计机构将负责对基准测试结果进行
公证,同时,TPC将出据一份全面彻底的测试报告。这份测试报告可以从TPC Web站点(http://www.tpc.org)上获得。

tpmC定义: TPC-C的吞吐量,按有效TPC-C配置期间每分钟处理的平均交易次数测量,至少要运行12分钟

3.1TPC-C规范概要

TPC-C是专门针对联机交易处理系统(OLTP系统)的,一般情况下我们也把这类系统称为业务处理系统。

TPC-C测试规范中模拟了一个比较复杂并具有代表意义的OLTP应用环境:
假设有一个大型商品批发商,它拥有若干个分布在不同区域的商品库;每个仓库负责为10个销售点供货;每个销售点为3000个客户提供服务;
每个客户平均一个订单有10项产品;所有订单中约1%的产品在其直接所属的仓库中没有存货,需要由其他区域的仓库来供货。

该系统需要处理的交易为以下几种:

  • New-Order:客户输入一笔新的订货交易;

  • Payment:更新客户账户余额以反映其支付状况;

  • Delivery:发货(模拟批处理交易);

  • Order-Status:查询客户最近交易的状态;

  • Stock-Level:查询仓库库存状况,以便能够及时补货。

对于前四种类型的交易,要求响应时间在5秒以内;对于库存状况查询交易,要求响应时间在20秒以内。

逻辑结构图:

image01.gif

 

流程图:

image02.gif

3.2.评测指标

TPC-C测试规范经过两年的研制,于1992年7月发布。几乎所有在OLTP市场提供软硬件平台的厂商都发布了相应的TPC-C测试结果,随着计算
机技术的不断发展,这些测试结果也在不断刷新。

TPC-C的测试结果主要有两个指标:

● 流量指标(Throughput,简称tpmC)

按照TPC的定义,流量指标描述了系统在执行Payment、Order-status、Delivery、Stock-Level这四种交易的同时,每分钟可以处理多少个
New-Order交易。所有交易的响应时间必须满足TPC-C测试规范的要求。

流量指标值越大越好!

● 性价比(Price/Performance,简称Price/tpmC)

即测试系统价格(指在美国的报价)与流量指标的比值。

性价比越小越好!

关于这部分内容,在TPC-C的官方文档中可以找到详细的说明,你可以在以下链接获得TPC组织的官方文档:

http://www.tpc.org/tpcc/spec/tpcc_current.pdf

在IBM的官方网站上,你也可以找到部分说明:

http://www-900.ibm.com/cn/products/servers/pseries/tech/tpcc.shtml

目前TPC-C的版本是5.2.

 

 

 

本文作者:
eygle,Oracle技术关注者,来自中国最大的Oracle技术论坛itpub.
www.eygle.com是作者的个人站点.你可通过Guoqiang.Gai@gmail.com来联系作者.欢迎技术探讨交流以及链接交换.

 


原文出处:

http://www.eygle.com/special/How.To.implement.Benchmark.Test.01.htm

 


oracle的tpc-c测试及方法

转自:http://www.cnblogs.com/xiaoboCSer/p/3661124.html 本文重点在于简介使用BenchmarkSQL对oracle进行tpcc的测试步骤,只是一个...
  • ytfy12
  • ytfy12
  • 2016年04月27日 10:21
  • 1064

企业数据标准,如何从理论走向实践?

数据标准是企业信息化建设的重要内容,是充分体现业务价值的重要手段,堪称企业连接业务与数据的纽带,但越来越多的企业意识到,数据标准不仅难以梳理,并且很难在信息系统中落地,那么企业应如何建立数据标准体系?...
  • yuanft
  • yuanft
  • 2016年05月16日 10:34
  • 1818

服务器TPC-C值计算方法

计算原则: 以单台服务器性能进行计算,即确保单台服务器工作的时候可以满足系统正常运行的需要; 假设每天有1万人次来窗口办理业务,每人次办理一项业务。即以每日1万笔前台交易为例进行综合系数的推导:...
  • ch7543658
  • ch7543658
  • 2014年09月09日 11:22
  • 2824

系统测试报告编写规范

摘要 测试报告是把测试的过程和结果写成文档,并对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。本文提供测试报告模板以及如何编写的实例指南。 关键字 测试报...
  • Java2King
  • Java2King
  • 2009年08月28日 10:06
  • 1637

目标跟踪 benchmark用法 添加、测试自己的代码

在目标跟踪领域,visual tracker benchmark给不同的算法提供一个基准,这个基准从2013年提出,基本上目标跟踪的论文中都用到了这个基准。 2013年论文链接: Online Ob...
  • fengying2016
  • fengying2016
  • 2017年06月05日 19:43
  • 819

软件测试结束的标准(仅供参考)

[规定用于暂停全部或部分与本计划有关的测试项的测试活动的标准。规定当测试再启动时必须重复的测试活动。] 1)      软件系统在进行系统测试过程中,发现一、二级缺陷数目达到项目质量管理目标要求,测...
  • achang21
  • achang21
  • 2013年09月15日 10:14
  • 8216

解析大数据基准测试——TPC-H or TPC-DS

随着开源Hapdoop、Map/Reduce、Spark、HDFS、HBASE等技术的商用化,大数据管理技术得到了突飞猛进的发展。一般来说,大数据具有3V特性,即Volume(海量)、Velocity...
  • dongzhumao86
  • dongzhumao86
  • 2015年05月19日 10:26
  • 12844

通用型C/C++程序性能测试Benchmark的简单实现

在完成一个算法的改进后, 除了人工估算时间复杂度外, 我们可能还希望直观地检测改进效果, 现有的性能分析工具比如Intel® VTune™ Amplifier自然满足需求, 然而有时候使用第三方工具的...
  • rrrfff
  • rrrfff
  • 2015年04月11日 17:30
  • 25350

软件测试上线标准

一、编写目的   明确软件测试工作的开始和结束标准。 二、软件测试合格标准      以上比例为错误占总测试模块的比例。 三、缺陷修复率标准   1)  A、B、C级错误修复率应达到100%(C类错误...
  • qq_27698093
  • qq_27698093
  • 2017年02月13日 10:07
  • 418

软件测试停止的标准

从网上找了一下,找到了下面的内容,学习并收藏了,谢谢信息的发布者。 1.1 软件测试停止标准 1) 软件系统经过单元、集成、系统测试,分别达到单元、集成、系统测试停止标准。 2) 软...
  • li__jing
  • li__jing
  • 2016年09月18日 11:12
  • 1237
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何实施Benchmark标准测试(之一)---问题的提出及Tpc-C标准
举报原因:
原因补充:

(最多只允许输入30个字)