TPC-C测试模型介绍

目录

TPC-C介绍

TPC-C 标准模型

模型简介

相关表说明

定义的常规事务

模型读写比

TPC-C 测试指标

生产环境测试参考

测试环境选型

实际项目计算参考

数据库负载正推计算案例

数据库负载反推计算案例

服务器配置考虑

参考文档


TPC-C介绍

TPC(Transaction process performance Council),即事务处理性能委员会。是一个非盈利性质的组织,其目的是制定计算机事务处理能力测试标准并监督其执行。

TPC-C标准于1992年发布,模拟一个商品批发公司的销售模型,用来衡量在线事务处理的基准当前最新版本为2010年最后修订的5.11.0

TPC-E2017年推出,用于模拟证券市场上,经纪人、交易所和用户进行的证券交易行为。

官网地址:

http://www.tpc.org/tpc_documents_current_versions/current_specifications5.asp

TPC-C 标准模型

模型简介

TPC-C模型是模拟一个商品批发公司的销售模型,这个模型涵盖了一个批发公司面向客户对一系列商品进行销售的过程,这包括管理订单,管理库存,管理账号收支等操作。这些操作涉及到仓库、商品、客户、订单等概念,围绕这些概念,构造了数据表格,以及相应的数据库操作。数据库设计了9张表。E-R模型如下:

相关表说明

Warehouse是仓库表,在模型中是用来记录存储商品的仓库。

District是区域表,模型中用来记录区域信息,每个仓库会为10个区域提供批发,仓库和区域是1对10的关系。

Customer是用户表,每个区域内会有3万个用户,这些用户和该区域所属的仓库进行产生交易(在特殊情况下会到其他仓库进行交易)。每个客户产生至少一个订单,每个订单又分为New-OrderOrder-line两部分。

Order是交易表,用来记录用户的商品交易,一个交易下可能会有5到10个商品的具体交易项。

New-Order是新订单表,用来记录新订单,是Order表中订单的缩略,当订单完成后会将对应的记录从New-Order表中删除。

Stock是用来记录Warehouse的库存情况。

Item是记录Warehouse中所存储的商品。​​​​​​​

定义的常规事务

围绕这些表,TPC-C模型定义了5个操作,分别是创建订单、订单支付、订单状态查询、发货和库存检查。通过5个操作,模拟了以仓库为核心的批发系统的运作。并最终通过对每秒钟创建订单的统计,得到tpmC(每分钟交易数)这个用来衡量整个系统性能的数值。

创建订单(New-Order):对于任意一个客户端,从固定的仓库随机选取 5-15 件商品,创建新订单.其中 1%的订单要由假想的用户操作失败而回滚。主要特点:中量级、读写频繁、要求响应快。

订单支付(Payment)事务内容:对于任意一个客户端,从固定的仓库随机选取一个辖区及其内用户,采用随机的金额支付一笔订单,并作相应历史纪录。主要特点:轻量级,读写频繁,要求响应快。

订单状态查询(Order-Status)对于任意一个客户端,从固定的仓库随机选取一个辖区及其内用户,读取其最后一条订单,显示订单内每件商品的状态。主要特点:中量级,只读频率低,要求响应快。

发货(Delivery)对于任意一个客户端,随机选取一个发货包,更新被处理订单的用户余额,并把该订单从新订单中删除。主要特点:1-10 个批量,读写频率低,较宽松的响应时间。

库存状态查询(Stock-Level)事务内容:对于任意一个客户端,从固定的仓库和辖区随机选取最后 20 条订单,查看订单中所有的货物的库存,计算并显示所有库存低于随机生成域值的商品数量。主要特点:重量级,只读频率低,较宽松的响应时间。​​​​​​​

模型读写比

TPC-C测试是一个读写混合的测试,其读写比例在1比1左右,各个操作在测试的占比分别为New-Order占45%,Payment占43%,Delivery占4%,Order-Status占4%,Stock-Level占4%。

TPC-C测试对性能的衡量标准tpmC是以New-Order中订单处理能力来进行度量,每秒钟所处理的订单数越多,那么该数据库系统的处理能力就越强。但是,为了防止通过一些取巧的手段,比如将较少的仓库全部加载到内存中,所有操作在内存中完成事务操作,并不进行落盘处理。所以TPC-C对每个仓库的tpmC做了一个上限处理,也就是每个仓库最多只有12.86 tpmC的限制,按照每个仓库50M到70M的数据量来估算,一万个仓库需要至少500G的存储,从而避免厂商通过一些优化手段提升性能影响测试结果。而且,要模拟用户的空闲时间,思考时间,更真实的反应实际交易中每个仓库的处理量,对于每个仓库的tpmC上限也是需要进行设置的。

TPC-C 测试指标

TPC-C测试的结果主要有两个指标,即流量指标(Throughput,简称tpmC)和性价比(Price/Performance,简称Price/tpmC)。

流量指标(Throughput,简称tpmC) 每分钟可以处理多少个New-Order交易。按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这4种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满足TPC-C测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量指标值越大说明系统的联机事务处理能力越高。流量指标越大越好。

性价比(Price/Performance,简称Price/tpmc) 即测试系统的整体价格与流量指标的比值,在获得相同的tpmC值的情况下,价格越低越好。性价比越大越好。

生产环境测试参考

​​​​​​​ 测试环境选型

国际通用表准不一定适合实际生产,需要考虑实际情况。

  1. 在真实环境中运行实际应用:最理想的方式是建设一套试点或租用一套,一切按实际生产环境部署并运行测试。该方法精确、稳妥,也常常最有效率,得到的度量值常常具有很明确和实际的含义。
  2. 使用用户定义的基准程序:用户可以定义一组含有自己实际应用环境特征的应用基准程序。
  3. 使用通用基准程序:使用如TPC-C之类的通用基准程序,这是不得已的一种近似方法,结果只能用作参考。

实际项目计算参考

数据库负载正推计算案例

为了方便计算数据库服务器的造型,我们约定:

  1. " 系统同时在线用户数为1500人(U1); 
  2. " 平均每个用户每分钟发出2次业务请求(N1);
  3. " 系统发出的业务请求中,更新、查询、统计各占1/3;
  4. " 平均每次更新业务产生3个事务(T1);
  5. " 平均每次查询业务产生8个事务(T2);
  6. " 平均每次统计业务产生13个事务(T3);
  7. " 一天内忙时的处理量为平均值的5倍;
  8. " 经验系数为1.6;(实际工程经验)
  9. " 考虑服务器保留30%的冗余;

服务器需要的处理能力计算公式为:

TPC-C=U1*N1*(T1+T2+T3)/3*忙闲比*经验系数/冗余系数 

则应用服务器的处理性能估算为:

TPC-C= 1500*2*(3+8+13)/3*5*1.6/0.7= 274,285 tpmC

数据库服务器关系到整个系统的稳定运行,考虑到高可靠性和高可用性,并注重设备的可扩展性和性价比,系统将配置两台TPC-C值不小于28万的高性能数据库服务器。

数据库负载反推计算案例

以单台服务器性能进行计算,即确保单台服务器工作的时候可以满足系统正常运行的需要。

假设每天有1万人次来窗口办理业务,每人次办理一项业务。即以每日1万笔前台交易为例进行综合系数的推导。

  1. 假设每月前台交易数(未来5年内的设计指标)为220,000 (有些业务在月初、月末的处理量比较高,按月统计可以平衡此项差异);
  2. 每日前台交易数=220000/22=10,000 ,即每日 1万笔;
  3. 忙时处理能力:每日交易的80%在4个小时内完成,即10000*80%/4=2000(笔/小时)
  4. 峰值处理能力:2000*2=4000(笔/小时),即峰值处理能力为每小时4000笔,或 67笔/分,假设业务人员同时在线为100人,即每人每分钟处理0.7笔)
  5. 假设每笔交易数据库处理事务数=20,基准TPC指标值对应的比例=8,计算值与公布值(最优值)的偏差经验值为4 (这几个参数估算的依据不足,更多的是经验值)
  6. cpu保留30%的处理能力冗余。

则 tpmC值为:

tpmC计算公式=[峰值处理能力(笔/分)*每笔交易对应数据库事务数*基准TPC指标值对应的比例*计算值与公布值(最优值)的偏差经验值/(1- cpu保留30%的处理能力冗余)

推算结果为tpmC= 67*20*8*4/(1-30%)= 61257

倒算出 综合系数 = 61257/10000=6.1

即数据库服务器tpmC= 每日前台交易数 * 6.1 (实际计算值应不高于该值)

应用服务器的tpmC = 数据库服务器 tpmC *50% (一般)

应用服务器的tpmC = 数据库服务器 tpmC *70%  (涉及大量计算的,如社保、税务)

服务器配置考虑

配置服务器需考虑以下情况:

  1. TPCC指标是按New-Order来算的,需要根据实际业务考虑。
  2. 交易复杂度,用户的一个交易约等于多少个 TPCC 的标准交易,如5-20。
  3. 按峰值指标来计算性能,一版峰值在极少数情况下出现,可乘以 80% 的系数。
  4. 预留容量,留扩展空间,按需扩展。

参考文档

https://zhuanlan.zhihu.com/p/396651167

https://www.cnblogs.com/haha029/p/17371480.html

https://cloud.tencent.com/developer/article/1650010?areaSource=103001.5&traceId=PFrqoJh2ByB8zxZwUtjje

https://cloud.tencent.com/developer/article/1669489

https://blog.csdn.net/jiao_fuyou/article/details/15497511

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值