TPC系列性能指标

摘要:
本文重点介绍当前常用的TPC系列性能指标,供广大用户参考。
 
1:关于TPC-C
TPC(Transactionprocessing Performance Council,事务处理性能委员会)是由数十家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,其功能是制定商务应用基准程序的标准规范、性能和价格度量,并管理测试结果的发布。
  
   图1:TPC组织成员构成
 
 
  TPC不给出基准程序的代码,而只给出基准程序的标准规范。任何厂家或其他测试者都可以根据规范,最优地构造出自己的测试系统(测试平台和测试程序)。为保证测试结果的完整性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(Full Disclosure Report),包括被测系统的详细配置、分类价格和包含5年维护费用在内的总价格。该报告必须由TPC授权的审核员核实(TPC本身并不做审计)。 TPC在全球只有不到10名审核员,全部在美国。
作为一家非盈利性机构,事务处理性能委员会(TPC)负责定义诸如TPC-C、TPC-H和TPC-W基准测试之类的事务处理与数据库性能基准测试,并依据这些基准测试项目发布客观性能数据。
TPC基准测试采用极为严格的运行环境,并且必须在独立审计机构监督下进行。委员会成员包括大多数主要数据库产品厂商以及服务器硬件系统供应商。
相关企业参与TPC基准测试以期在规定运行环境中获得客观性能验证,并通过应用测试过程中所使用的技术开发出更加强健且更具伸缩性的软件产品及硬件设备。
TPC-C是一种旨在衡量联机事务处理(OLTP)系统性能与可伸缩性的行业标准基准测试项目。这种基准测试项目将对包括查询、更新及队列式小批量事务在内的广泛数据库功能进行测试。许多IT专业人员将TPC-C视为衡量“真实”OLTP系统性能的有效指示器。
TPC-C基准测试针对一种模拟订单录入与销售环境测量每分钟商业事务(tpmC)吞吐量。特别值得一提的是,它将专门测量系统在同时执行其它四种事务类型(如支付、订单状态更新、交付及证券级变更)时每分钟所生成的新增订单事务数量。独立审计机构将负责对基准测试结果进行公证,同时,TPC将出据一份全面彻底的测试报告。
这份测试报告可以从TPC Web站点(http://www.tpc.org)上获得。
 
tpmC定义: TPC-C的吞吐量,按有效TPC-C配置期间每分钟处理的平均交易次数测量,至少要运行12分钟。
 
1.1:TPC-C规范概要
 
TPC-C使用三种性能和价格度量,其中性能由tpmC(transactions per minute,tpm)衡量,C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。TPC-C还经常以系统性能价格比的方式体现,单位是$/tpmC,即以系统的总价格(单位是美元)/tpmC数值得出。
TPC-C是专门针对联机交易处理系统(OLTP系统)的,一般情况下我们也把这类系统称为业务处理系统。
TPC-C测试规范中模拟了一个比较复杂并具有代表意义的OLTP应用环境:假设有一个大型商品批发商,它拥有若干个分布在不同区域的商品库;每个仓库负责为10个销售点供货;每个销售点为3000个客户提供服务;每个客户平均一个订单有10项产品;所有订单中约1%的产品在其直接所属的仓库中没有存货,需要由其他区域的仓库来供货。
 
该系统需要处理的交易为以下几种:
  •   New-Order:客户输入一笔新的订货交易;
  •   Payment:更新客户账户余额以反映其支付状况;
  •   Delivery:发货(模拟批处理交易);
  •   Order-Status:查询客户最近交易的状态;
  •   Stock-Level:查询仓库库存状况,以便能够及时补货。
 
对于前四种类型的交易,要求响应时间在5秒以内;对于库存状况查询交易,要求响应时间在20秒以内。
 
逻辑结构图:
 

 


图2:逻辑结构图

流程图:

图3:应用流程图
 
1.2: 解读tpmC
  从TPC-C的定义不难知道,这套基准程序是用来衡量整个IT系统的性能,而不是评价服务器或某种硬件系统的标准,而且tpmC 数值的高低直接受到各个环节的影响,右表大概可以说明系统设置对tpmC测试的影响。此处的“IT系统”包括服务器、外设(如硬盘或RAID)、服务器端操作系统、数据库软件、客户端及其操作系统、数据库软件和网络连接等。因此,如何解读tpmC数值会因不同的采购需求有非常大的差异。

  图4:TPC-C检测环境示意图
 
 
图5:tpmC测试指标与硬件的关联度
 
  上述5种交易中,除付货交易是事后批处理,其余4种皆为联机交易。要注意的是,在处理新订单的同时,系统还要处理其他4类事务请求。通常而言,新订单请求不可能超出全部事务请求的45%,因此,当一个系统的性能为1000tpmC时,它每分钟实际处理的请求数是2000多个。数据来源:www.tpc.org
  以服务器为例。在很多厂家的TPC测试系统中,服务器的价格只是系统总价格的25%或更小,而硬盘的价格有可能占到总价格的30%以上,因为TPC-C要求被测系统必须保存180天的事务记录(这一趋势从一些最新的TPC-C测试结果来看,会愈演愈烈)。如果同样的服务器被用到用户的环境中,厂家报的tpmC值就意义不大,因为用户的实际系统与厂家原来用于TPC测试的系统大不一样。当同样的主机用在不同的系统中时,tpmC值可能有相当大的变化,现在许多用户还没有意识到这一点。
尤其需要服务器采购用户注意的是,tpmC指标更多的是衡量从Client到终端网络的性能区域(如左图所示),而不是通常误认为的服务器到企业端网络的性能。由此可见,如果用户是建立一套全新的业务系统,那么无妨多借鉴tpmC的性能指标,如果只是采购某种或某些硬件设备,则需要参考更多的指标。
 
1.3: 评测指标
 
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)
即测试系统价格(指在美国的报价)与流量指标的比值。
性价比越小越好!
 
1.4: 结果发布
各厂商的TPC-C测试结果都按TPC组织规定的两种形式发布:测试结果概要(Executive Summary)和详细测试报告(Full Disclosure Report)。
测试结果概要中描述了主要的测试指标、测试环境示意图以及完整的系统配置与报价,而详细测试报告中除了包含上述内容外,还详细说明了整个测试环境的设置与测试过程。
P690 tpmC测试值:76,389,839.00
l          $/tpmC:831.00
l          美国美金报价:6,349,223.0
l          CPU数:32
l          数据库:IBM DB2 UDB 8.1
l          操作系统:AIX 5L V5.2
l          中间件:TUXEDO 8.0
l          测试日期:2003.6.30
P690 TPC-C测试的配置:
(1).  后台:1 x eServer pSeries 690 with 32 x 1.7GHz POWER4+ processors with 128MB L3 cache per MCM (total of four MCMs), 512GB memory
(2).  前端:30 x eServer pSeries 630 Model 6E4 each with 4 x 1.0GHz POWER4 CPUs with 32MB L3 cache, 16GB memory

 
2: TPC-W
 
TPC Benchmark™ W (TPC-W) is a transactional web benchmark. The workload is performed in a controlled internet commerce environment that simulates the activities of a business oriented transactional web server. The workload exercises a breadth of system components associated with such environments, which are characterized by:
  • Multiple on-line browser sessions 
  • Dynamic page generation with database access and update
  • Consistent web objects
  • The simultaneous execution of multiple transaction types that span a breadth of complexity
  • On-line transaction execution modes
  • Databases consisting of many tables with a wide variety of sizes, attributes, and relationships
  • Transaction integrity (ACID properties)
  • Contention on data access and update
The performance metric reported by TPC-W is the number of web interactions processed per second. Multiple web interactions are used to simulate the activity of a retail store, and each interaction is subject to a response time constraint. 
TPC-W simulates three different profiles by varying the ratio of browse to buy: primarily shopping (WIPS), browsing (WIPSb) and web-based ordering (WIPSo). The primary metrics are the WIPS rate, the associated price per WIPS ($/WIPS), and the availability date of the priced configuration.
 
TPC-W Related Documents
TPC-W模拟面向商务的事务型Web服务器活动。工作负载将在受控Internet商务环境中执行,并且将对与此种环境相关的广泛系统组件进行测试。
通过TPC-W得到的性能指标为每秒处理的Web交互次数。多种Web交互方式被用于模拟零售商店业务活动,其中每种交互方式均有一定的响应时间限制。商店规模可以通过一套事先指定的比例因子加以选择,这种比例因子为库存货物件数,其取值被控制在1,000件至10,000,000件之间。
例子:
基准测试详细信息:
 
 
操作系统
Windows Server 2003企业版
性能
每秒钟处理21,139次Web交互(WIPS)
性价比
每WIPS 32.62美元
硬件设备
IBM eServer xSeries 440
总体系统成本
689,477美元
系统可用日期
2003年3月31日
测试起始日期
2003年1月14日
 
 
3TPC-H
TPC-H所报告的性能计量单位被称为“TPC-H复合式每小时查询性能单位(QphH)”,反映出了系统处理查询的多方面能力。
The TPC-H benchmark is widely used in the database community as a yardstick to assess the performance of database management systems against large scale decision support applications. The benchmark is designed and maintained by the Transaction Processing Counsel.
In Sep 2008 we ran this benchmark on our Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz with 8GB RAM and ample disk space (2x 500 GB SATA disk @ 7200 RPM as SW-RAID-0), running Fedora 8 (Linux kernel 2.6.24). The systems considered were PostgreSQL 8.2.9, MySQL 5.0.45, Ingres 2006 version 4 and MonetDB/SQL 2.25 on top of MonetDB/Server 5.7 (development version from CVS, dated Sat Jul 19 11AM). All systems were installed with their default settings, i.e. it mimics an out-of-the-box situation that end-users will experience. For PostgreSQL we called the statistics utility directly after loading. The query sequences were run one after the other in a single client session. The timings for MonetDB concern two runs: '2nd' [1st]. The other systems concern a single run. The same experiment was previously ran in October 2006. July 2008.
TPCH scale factor 2, timing in seconds
 
 
MonetDB/SQL
 
 
PostgreSQL
MySQL
 
stable
current
recycler
 
 
Q1
6.2 [6.3]
2.2 [2.2]
0.8 [2.2]
76
41
Q2
0.14 [0.2]
0.07 [0.08]
0.08 [0.16]
1
26
Q3
2.6 [2.6]
1.1 [1.0]
0.01 [1.2]
20
16
Q4
2.2 [2.2]
0.9 [0.9]
0.002 [0.9]
1.2
2.6
Q5
1.3 [1.2]
0.7 [0.8]
0.002 [0.8]
0.8
27
Q6
0.5 [0.5]
0.2 [0.3]
0.003 [0.3]
5.2
7
Q7
1.8 [1.8]
0.7 [0.8]
0.2 [0.5]
8.7
8
Q8
0.7 [0.7]
0.4 [0.4]
0.003 [0.2]
6.9
1.5
Q9
1.7 [1.8]
0.6 [0.6]
0.04 [0.9]
53
11
Q10
1.7 [1.7]
0.7 [0.7]
0.02 [0.8]
0.9
18
Q11
0.2 [0.2]
0.06 [0.06]
0.06 [0.06]
1.1
0.5
Q12
1.3 [1.3]
0.6 [0.6]
0.3 [0.7]
7
6.9
Q13
8.1 [8.0]
3.3 [3.3]
1.0 [3.3]
19.2
9.9
Q14
0.4 [0.3]
0.2 [0.2]
0.008 [0.2]
5
38
Q15
0.3 [0.3]
0.1 [0.2]
0.03 [0.2]
5
13
Q16
1.1 [1.1]
0.5 [0.5]
0.4 [0.5]
12.9
11
Q17
1.3 [1.3]
0.6 [0.6]
0.006 [0.6]
 
1.2
Q18
1.7 [1.7]
0.9 [0.9]
0.004 [0.9]
52
 
Q19
3.6 [3.7]
1.4 [1.4]
1.3 [1.5]
8
0.327
Q20
1.2 [1.2]
0.4 [0.4]
0.4 [0.4]
 
0.4
Q21
7.6 [7.6]
2.2 [2.2]
2.0 [0.4]
49
7.3
Q22
0.7 [0.7]
0.3 [0.4]
0.4 [0.4]
119m
0.5
load
3m30
1m42
1m42
6m57
3m10