TPC测试系列(一)整体概述

1.什么是TPC?

TPC(Transaction process performance Council)事务处理性能测试委员会,有两个主要职责:一是制定计算机事务处理能力测试标准,二是监督其执行。其总部位于美国,绝大多数会员都是美、日、西欧的大公司。

TPC的出版物是开放的,可以通过网络获取(http://www.tpc.org)。TPC不给出基准程序的代码,而只给出基准程序的标准规范(Standard Specification)。任何厂家或其它测试者都可以根据规范,最优地构造出自己的系统(测试平台和测试程序)。为保证测试结果的客观性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(Full Disclosure Report),包括被测系统的详细配置、分类价格和包含五年维护费用在内的总价格。该报告必须由TPC授权的审核员核实(TPC本身并不做审计)。现在全球只有几个审核员,全部在美国。

2.TPC系列测试标准发展历史

(1)80年代初,出现OLTP

OLTP事务处理模式(On-Line Transaction Process在线事务处理),是一种新的在线计算模式。与70年代占统治地位的是批量计算模式不同,它采用相对单纯的方式直接通过在线数据库系统进行简单的事务处理。商业日常事务处理自动化的第一个应用程序是自动提款事务处理(Automated teller transaction—ATM)。

(2)80年代中期,IBM提出TP1

TP1(Transaction Process)测试标准,主要是度量系统在批模式下处理ATM事务的性能。但TP1标准有两个缺陷:一是忽略网络和OLTP系统中用户交互部分的系统开销,因而可能产生不真实的性能报告;二是标准的定义太贫乏,并且无法监控标准测试的执行过程。因此,TP1的影响较小,只得到了少量的用户认可。

(3)1985年2月,Jim Gray和24位科学界和工业界同仁提出DebitCredit法

DebitCredit(借方信任)法是《事务处理能力的度量(A Measure of Transaction Processing Power)》的文章中提出的一种在线事务处理能力测试方法。与TP1标准不同,Gray提出的标准是一种真正的系统级标准,其中包括了网络和用户交互的开销。但是有个缺陷:没有一个标准来监督测试的执行和结果发布。一些厂商随意用TP1或DebitCredit进行测试,有些厂商甚至删掉DebitCredit标准中的一些关键要求以期改善他们的测试结果。

(4)1988年8月,ITOM牵头8家公司成立TPC

ITOM作为(为中小企业提供IT技术支持的国际知名公司)创立者之一的OmriSerlin,成功说服8家公司成立了TPC。

(5)1989年11月,TPC发布TPC-A,成立后第一个标准。

TPC-A澄清了混乱的市场,将上世纪80年代中期建立的TP1和DebitCredit模型法典化,形成了标准。例如要求90%的事务处理应在2秒内完成;将每个测试系统需要的交互终端数降低到10台,而且规定终端的费用应包含在系统价格中。 

(6)1992年7月,TPC发布TPC-C,OLTP测试新标准,用于替代TPC-A。

(7)1994年4月,TPC发布TPC-D,决策支持系统测试标准。

(8)1999年,TPC发布TPC-H,决策支持系统测试新标准,用于替代TPC-D。

(9)2004年,TPC发布TPC-App,应用服务器测试标准

(10)2007年,TPC发布TPC-E,OLTP测试新标准,用于替代TPC-C。但TPC-C测试是一个较为成熟、被计算机厂商及用户广为接受的测试模型,所以替代过程不是一蹴而就,目前TPC-C标准仍被使用。

3.TPC测试标准分类

  • 联机在线事务处理系统(OLTP)测试标准:TPC-C、TPC-E(最新)
  • 决策支持/大数据(DS)测试标准:TPC-H、TPC-DS(最新)
  • 服务器虚拟化(VMS)测试标准:TPC-VMS

 4.TPC-C

 (1)规范概要

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

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

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

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

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

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

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

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

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

(2)评测指标

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

  • tpmC流量指标(Transactions per minute C),越大越好

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

  • Price/tpmC性价比(Price/Performance),越小越好

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

(3)发布结果

各厂商的TPC-C测试结果都按TPC组织规定的两种形式发布:测试结果概要(Executive Summary)和详细测试报告(Full Disclosure Report)。测试结果概要中描述了主要的测试指标、测试环境示意图以及完整的系统配置与报价,而详细测试报告中除了包含上述内容外,还详细说明了整个测试环境的设置与测试过程。

以下是TPC-C性能测试排名前三的厂家及其系统:

  5.TPC-E  权威服务器测试的新“龙头”

 TPC组织在2007319日推出了全新的TPC-E OLTP(联机事务处理)基准测试,以取代已经实行了14年的TPC-C。原因主要有两个:一是TPC-C的模型已经老化,二是TPC-C的测试成本太高。

TPC-C的模型还是十几年前的东西——过时的C/S架构,模拟的是批发商系统,简单的数据库和业务逻辑。而当今WEB2.0时代的OLTP应用,大多采用流行的B/S架构,需要更大规模的并行处理能力,数据库和业务逻辑也更加复杂。显然,如果再用过去的模型来模拟今天的应用环境,确实显得有些不合时宜了。

TPC-CTPC-E,该测试更加模拟实际和复杂,具有更高的技术权威性。

  • 首先,服务器性能测试完成了从C/S架构到B/S架构的过渡。随着B/S架构的广泛发展,TPC-E测试将具备更广泛的基础和代表性。
  • 其次,数据类型由3种扩展为10种,事务类型由5种增加到12种,数据库构成更为复杂,更符合实际应用,对服务器性能要求更高。
  • 最后,测试数据更加真实,来自于美国和加拿大的真实人口统计,其测试结果对金融、证券等高端行业的服务器应用具有重要的参考价值。

但是我们也注意到,TPC-E毕竟是新玩意,参与的厂商数量、用户的认可程度、支持的操作系统(目前仅支持WINDOWS)、支持的数据库类型(目前仅支持微软SQL SERVER)都还有限。

(1)规范概要

TPC-E的测试模拟了全球最大的股票交易市场——纽约证券交易所的日常交易流程,如账户查询、在线交易和市场调研等。整合了B2BC2B两种交易模式。TPC-E所模拟的实际应用如下:

TPC-E测试,加压端会模拟真实业务情况对系统加压,是系统在满负载的情况下,运行两个小时,取这段时间的最终结果为最终成绩。而且在对系统加压时,各种类型的操作比例都根据实际应用作了严格的规定,例如订单交易占9%-10%,以求与真实的证券公司保持一致;同时,高并发访问量和数据响应时间等因素也有严格的限制,在10种业务处理中,系统延迟最大不能超过3秒。

与TPC-C测量事务类型只有四种相比较,TPC-E的事务类型更加丰富,数量达到了十二种,其中包括交易查询事务、交易执行事务、交易结果更新事务等(具体参见下表)。前10种事务按照一定比例混合即成为最终测试事务合集。在这12种事务中数据维护事务、交易清理事务较为特殊,他们不是由客户端发起请求,而是数据库自身维护所要完成的工作,数据维护事务每秒钟执行一次,而交易清理事务每次测试开始时执行一次。每个事务对应数据库管理系统中的一个或多个带输入和输出参数的存储过程,单个存储过程称为一个事务帧。TPC-E测试标准要求每项事务中90%的响应时间要在某一个指定时间内完成,这是出于在实际环境中对客户真实应用情况的一个考虑。虽然不同的事务所要求的响应时间约束也不同,但基本上都是要求在3秒钟内完成。

TPC-E事务描述表如下:

虽然TPC-E使用了更多的表结构及事务,但由于TPC-E使用了更有效的存储过程,从而减少了对磁盘I/O的利用,降低了系统对磁盘数目的要求——使用同一数据库服务器,TPC-E相比TPC-C可以减少2/3的硬盘数目,这对于降低参加测试系统的整体费用具有非常重要的意义。

(2)评测指标

TPC-C一样,TPC-E的测试结果也主要有两个指标:

  • 性能指标tpsE(transactions per second E),越大越好

          性能指标是指系统在执行多种交易时,每秒钟可以处理多少交易(tpmC是以分钟为单位)。tpsE=交易执行事务总数/ Measurement Interval(测量区间);

  • 性价比(美元/tpsE),越小越好

          性价比则是指系统价格与前一指标的比值。

(3)评测结果

以下是TPC-E性能测试排名前三的厂家及其系统:

参考文档:测评标准云起云落:从TPC-C到TPC-E测试

TPC-H  商业智能计算测试

(1)规范概要

TPC-H是TPC组织制定的一套决策支持系统测试基准。主要目的是评价特定查询的决策支持能力,强调服务器在数据挖掘、分析处理方面的能力。它由一套面向零售业务的即席查询和并发数据修改组成,可以检索大量数据,执行高度复杂的查询,并为关键业务问题提供答案。

TPC-H 主要是用 3NF(第三范式) 实现了一个数据仓库,共包含 8 个基本关系表,包含22 个查询测试语句(Q1~Q22),遵循SQL92标准。其中关系表数据量可以设定从 1G~3T 不等。SQL语句具有统计查询、多表关联、sum、复杂条件、group by、order by等组合方。

关系表具体说明如下:

PART(零件信息)、SUPPLIER(供货商信息)、PARTSUPP(供货商的零件信息)、CUSTOMER(消费者信息)、NATION(国家信息)、LINEITEM(在线商品的信息)、REGION(地区信息)、ORDERS(订单信息)

(2)评价指标

  • 性能指标(QphH@size),越大越好

           每小时执行的查询数。其中H 表示每小时系统执行复杂查询的平均次数,size 表示数据库规模的大小。它能够反映出系统在处理查询时的能力,包括执行查询所选的数据库大小,单个流提交查询时的查询处理能力,以及多个并发用户提交查询时的查询吞吐量。 

  • 性价比($ / QphH @ Size),越小越好

           性价比则是指系统价格与前一指标的比值。

 TPC-DS

 新兴的数据仓库开始采用新的模型,如星型模型、雪花模型。TPC-H已经不能精准反映当今数据库系统的真实性能。为此,TPC组织推出了新一代的面向决策应用的TPC-DS 基准。

(1)规范概要

TPC-DS是决策支持的基本测试,提供了通用决策支持系统的性能评估。基准测试的结果衡量了单用户模式下的响应时间;多用户模式下的查询吞吐量;特定操作系统和硬件的数据维护性能;在受限复杂的环境下数据处理系统、支持多用户决策。

TPC-DS的特点跟大数据的分析挖掘应用非常类似,已经成为客观衡量多个不同Hadoop版本以及SQL on Hadoop技术的最佳测试集。比如Hadoop等大数据分析技术也是对海量数据进行大规模的数据分析和深度挖掘,也包含交互式联机查询和统计报表类应用,同时大数据的数据质量也较低,数据分布是真实而不均匀的。

A.数据模型:

TPC-DS采用星型、雪花型等多维数据模式。它包含24张表,99个测试SQL案例,遵循SQL’99和SQL 2003的语法标准。主要特点是:

  • 包含7张事实表和17张维度表,平均每张表18列,且含丰富的主外键约束。
  • 数据真实,数据量大,且含数据倾斜。
  • 测试案例SQL比较复杂,几乎所有案例都有很高的IO负载和CPU计算需求
  • 测试案例中包含各种业务模型(如分析报告型,迭代式的联机分析型,数据挖掘型等),并且都是在回答真实的商业问题
B.业务模型:
TPC-DS 基准提供了两种重要的业务模型: 用户查询和数据维护。查询是把操作性的事实转化为商业情报,而数据维护操作是将数据仓库数据与操作数据库进行同步。
  • 基准提供了被测试数据库测试数据生成程序生成测试数据文本文件,测试人员通过使用ETL 工具将其装载到被测DBMS;
  • 基准提供99 个查询模板及查询语句生成程序,这些查询模板模拟迭代的OLAP 查询、数据挖掘工具的抽取查询、即席( ad-hot) 查询以及大量定制的常见的报表查询;
  • 基准提供了5 种方法模拟现实应用的ETL 过程,包括不需保留历史记录的维度数据维护,需保留历史记录的维度数据维护,事实表数据插入和数据删除维护以及库存表数据删除维护。
 
C.执行模式:
  TPC-DS 测试分为: 测试数据加载、查询顺序执行( Power)和并行执行( Throughput) 测试。
  • 测试数据加载主要包括: 被测系统准备、数据文件生成、测试数据库创建、基础表创建、数据加载、约束验证、辅助数据结构( 如索引) 创建、表和辅助数据统计分析等。
  • Power 测试是用于评测数据库对单个查询流的处理能力。
  • Throughput 测试是用于测试DBMS 对多个查询流并发查询和操作的处理能力,分为数据查询和数据维护各两个子步骤。
数据查询是TPC-DS 基准测试的核心。
在Power 测试中,99 个数据查询形成的查询流只执行一次,用于评测数据库对单个查询流的处理能力。
在Throughput 测试中,数据查询执行两次,每次执行至少20 个以上的并行查询流,模拟多个用户同时对数据库的查询操作。为了适应多查询流,数据库优化组件必须依据数据规模进行规划,每个用户也要有足够的临时空间来保存大量的中间结果集。这样DBMS 能找出并行用户的最佳执行计划。如下表展示了TPC-DS 基准查询所使用的SQL 特征及数量:

 (2)评价指标

TPC-DS 基准定义了两个评价指标:
  • 性能指标(QphDS@SF),反映每秒的有效查询数据量的性能指标,越大越好。其计算公式为:
 
  • 性价比指标($/QphDS@SF),反映每秒每查询数据量的性价比指标,值越小说明性价比越高。其计算公式为:
其中 P 是测试花费总数。
(3)标度因子和SF
TPC-DS的标度因子是:1TB,3TB,10TB,30TB,以及100TB。每个定义的标度因子都有一个相关的SF值,这是一个无单位的数量。标度因子及SF值的关系如3-1表所示:

每个标度因子和测试数据库中的每个表的行数见3-2表中的数据库行数。

参考文档:TPC-DS标准规范




 

posted @ 2020-02-20 12:15  李子恒  阅读(5275)  评论(0编辑  收藏  举报