TPCC性能测试

TPCC性能测试TPC-C是一种衡量OLTP系统性能和可伸缩性的基准测试项目。它由一系列的OLTP工作流组成,包括查询,更新及队列式小批量事务在内的广泛数据库功能。它模拟了一个典型的OLTP应用环境中的活动,这些活动由一系列复杂的事务组成。适当复杂的OLTP事务在线和延迟事务执行模型多用户适当的系统和应用执行时间大量的磁盘输入和输出事务完整性(ACID)随机的数据访问数据库由各种大小,属性和关系的表组成。

大家好,欢迎来到IT知识分享网。

参考:https://www.jianshu.com/p/769611dd86b7

0. 参考

TPC-C 基准测试程序在 OLTP 系统中的应用与实现
percona tpcc

1. 概要

TPC(事务处理性能委员会:Transaction Processing Performance Council),是由数 10 家会员公司创建的非盈利组织,总部设在美国。TPC 的主要成员是计算机软硬件厂家,其主要成员包括 IBM,HP,Oracle,Microsoft 等。TPC 的功能是制定商务应用标准程序(Benchmark)的标准规范,性能和价格度量,并管理测试结果的发布。TPC 不给出基准测试程序的代码,而只给出基准程序的标准规范。任何厂家或其它测试者都可以根据规范,最优的构造自己的系统。TPC 已经推出的基准程序包括:TPC-A,TPC-B,TPC-C,TPC-D,TPC-E,TPC-W。其中

  • TPC-C 是在线事务处理(OLTP)的基准程序。
  • TPC-D 是决策支持的基准程序。
  • TPC-E 是大型企业的信息服务的基准程序。

本文主要向读者介绍 TPC-C 标准的设计模型,实现及其应用。本文中要测试的 OLTP 系统是 MySQL。

2. TPC-C 介绍

TPC-C 是一种衡量 OLTP 系统性能和可伸缩性的基准测试项目。它由一系列的 OLTP 工作流组成,包括查询,更新及队列式小批量事务在内的广泛数据库功能。它模拟了一个典型的 OLTP 应用环境中的活动,这些活动由一系列复杂的事务组成。TPC-C 工作流应该具备以下特性:

  • 适当复杂的 OLTP 事务
  • 在线和延迟事务执行模型
  • 多用户
  • 适当的系统和应用执行时间
  • 大量的磁盘输入和输出
  • 事务完整性(ACID)
  • 随机的数据访问
  • 数据库由各种大小,属性和关系的表组成。

2.1. TPC-C 商业模型(E-R 模型)

TPC-C 模拟了一个比较有代表意义的 OLTP 应用环境:在线订单处理系统。假设有一个大型商品批发商,拥有 N 个位于不同区域的仓库,每个仓库负责为 10 个销售点供货,每个销售点有 3000 个客户,每个客户平均一个订单有 10 项产品。由于一个仓库中不可能 存储公司所有的货物,有一些请求必须发往其它仓库,因此,数据库在逻辑上是 分布的。N 是一个可变参数,测试者可以随意改变 N,以获得最佳测试效果。

TPCC性能测试
图 1.TPC-C E-R 模型标题

2.2. TPC-C 输入数据流

TPC-C 系统需要处理的交易有以下五种:

  1. New-Order: 客户输入一笔新的订货交易
  2. Payment:更新客户账户余额以反应其支付状况
  3. Delivery:发货(批处理交易)
  4. Order-Status:查询客户最近交易的状态
  5. Stock-Level:查询仓库库存状况,以便能够及时补货。

各个类型的交易在系统中所占的比例:

  1. New-Order: 45%
  2. Payment:43%
  3. Delivery:4%
  4. Order-Status:4%
  5. Stock-Level:4%

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

这五种交易作用在图 1 所示的九张表上,事务操作类型包括更新,插入,删除和取消操作。

2.2 TPC-C 输出指标

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

流量指标(tpmC):描述了系统在执行 Payment,Order-Status,Delivery,Stock-level 这四种交易的同时,每分钟可以处理的 New-Order 交易的数量。流量指标值越大越好。

tpm 是 transactions per minute 的简称;C 指 TPC 中的 C 基准程序。它的定义是每分钟内系统处理的新订单个数。要注意的是,在处理新订单的同时,系统还要按图 1 的要求处理其 它 4 类事务 请求。从图 1 可以看出,新订单请求不可能超出全部事务请求的 45%,因此,当一个 系统的性能为 1000tpmC 时,它每分钟实际处理的请求数是 2000 多个。

性价比(Price/tpmC):测试系统价格与流量指标的比值。性价比越小越好。

2.3. TPC-C 实现

TPC-C 作为 OLTP 系统的测试标准程序,有很多商用的或者免费的软件都实现了这个标准。下面我们介绍几种比较有名的实现软件。

HammerOra:一款负载测试工具,目前支持 Oracle,MySQL 和 Web 应用。基于 Tcl 语言,内嵌了 TPC-C 和 TPC-H 两套标准测试脚本。Hammerora 的设计原理(以 Oracle 为例)是解析 Oracle 的 Trace 文件,并把它们转化为 Oratcl 程序, 然后在 Oracle 数据库中用多个用户并发的对用户 的事务进行“回放”。我们知道,Oracle 的 Trace 文件能够翔实的记录用户对数据库的操作。这样 Hammerora 能够保证对用户环境的真实模拟。

Orabm:Oracle 服务器的 CPU 和内存性能测试工具。是 Geoff Ingram 构建的一个程序包,包含了一套 SQL 脚本和几个命令行程序。Orabm 装载程序(Orabmload)构建了一组遵从 TPC-C 标准的数据用以测试。Orabm 事务以 TPC-C 中的 Stock-Level 和 Order-Status 事务为基础。它的运行机制简单描述如下,Orabm 通过在每个用户指定的并发数据库会话 (session) 中运行用户执行数量的数据库事务来进行工作。事务通过 ORABM 模式下的 ORABM_SERVERSIDE_STRESS 存储过程运行。对每个并发会话来说,ORABM_SERVERSIDE_STRESS 运行在 orabm 命令行下指定的事务数,并返回该会话在采样间隔完成时的 TPS 值。要确保所有并发会话都是在采样间隔期间处理事务,TPS 值仅包括事务的中间的 80%,也即初始的 10%和最后的 10%将忽略掉。

Benchmark Factory™ for Databases 是专门针对数据库做性能测试和容量规划的工具,支持的数据库包括 Oracle,DB2,SQL Server,MySQL 等主流数据库。它可以模拟出数千个用户访问应用系统中的数据库,文件,Internet 及消息服务器。无论是服务器,还是服务器集群,Benchmark Factory 是一种成熟,可靠,高扩展性和易于使用的测试工具。支持的性能测试标准包括 TPC-C,TPC-B,TPC-D,TPC-H 等。Benchmark Factory 工作原理是 Benchmark Factory 控制台通过对模拟的若干个 Agent 场景控制,对目标数据库进行事物操作,记录操作过程目标数据库数据。Benchmark Factory 控制台再记录的数据进行加工,生成运行结果报告,方便地确定系统容量,找出系统瓶颈,隔离出用户的分布式计算环境中与系统强度有关的问题。其架构如图 2 所示:

TPCC性能测试
图 2:Benchmark Factory 架构图标题

读者也可以根据 TPC-C 规范中的模型,以及输入,输出工作流设计自己的 TPC-C 测试系统,在github上也可以找到许多开源的实现:

这里有一个使用akopytov sysbench和tpcc-mysql的例子MySQL基准测试小脚本:基于sysbench和tpcc-mysql

3. NewSql的tpcc测试

使用percona的sysbench-tpcc测试CRDB和TiDB可以参考下NewSQL数据库压力测试工具系列——TPCC的做法。

使用percona sysbench测试CRDB可以参考cockroachdb 压力测试初试

除此以外,CRDB和TiDB都有自己的TPCC改造版本。

3.1. TiDB的TPCC

TiDB是在Benchmark 5.0的基础上进行了改造,适配了TiDB和Mysql。结果报告见TiDB TPC-C 性能对比测试报告 – v3.0 对比 v2.1,测试方法见如何对 TiDB 进行 TPC-C 测试

TiDB还有benchmark的测试,使用的是akopytov sysbench,测试方法见如何用 Sysbench 测试 TiDB

3.2. CRDB的TPCC

CRDB没有用公认的数据库业界实现了 TPC-C 标准的工具来测试,而是使用了自家实现的一套 TPC-C 工具来测试的。其规范程度没有得到认可,在其官方发布的白皮书中,也提到这套 TPC-C 不能与 TPC-C 标准进行比较。
使用Benchmarksql 5.0进行测试可以参考如何用 Benchmarksql 测试 CockroachDB 性能

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21050.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信