TPC-C是专门针对联机交易处理系统(
OLTP系统)的规范,一般情况下也把这类系统称为
业务处理系统。1992年7月发布。几乎所有在OLTP
市场提供软硬平台的国外主流厂商都发布了相应的TPC-C测试结果,随着
计算机技术的不断发展,这些测试结果也在不断刷新。
基本概念
标准由来
TPC(
Transaction Processing Performance Council,
事务处理性能委员会)是由数十家
会员公司创建的
非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,其功能是制定商务应用
基准程序的标准规范、性能和价格度量,并管理测试结果的发布。
TPC不给出基准程序的代码,而只给出基准程序的标准规范。任何厂家或其他测试者都可以根据规范,最优地构造出自己的测试系统(
测试平台和
测试程序)。为保证测试结果的完整性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(Full Disclosure Report),包括
被测系统的详细配置、
分类价格和包含5年
维护费用在内的总价格。该报告必须由TPC授权的审核员核实(TPC本身并不做审计)。 TPC在全球只有不到10名审核员,全部在美国。
TPC-C使用三种性能和价格度量,其中性能由
tpmC(transactions per minute,tpm)衡量,Cpm衡量,C指TPC中的C
基准程序。它的定义是每分钟内系统处理的新订单个数。TPC-C还经常以系统
性能价格比的方式体现,单位是$/tpmC,即以系统的总价格(单位是
美元)/tpmC数值得出。
规范概要
这类系统具有比较鲜明的特点,这些特点主要表现如下:
1、多种事务处理并发执行,充分体现了事务处理的复杂性;
2、在线与离线的事务执行模式;
3、多个在线会话终端;
6、强调事务的完整性要求(ACID);
7、对于非一致的数据库分布,使用
主键和从键进行访问;
8、数据库由许多大小不一、属性多样,而又相互关联的
数据表组成;
9、存在较多数据访问和更新之间的资源争夺。
测试模型
TPC-C测试用到的模型是一个大型的商品批发销售公司,它拥有若干个分布在不同区域的商品仓库。当业务扩展的时候,公司将添加新的仓库。每个仓库负责为10个
销售点供货,其中每个销售点为3000个客户提供服务,每个客户提交的订单中,平均每个订单有10项产品,所有订单中约1%的产品在其直接所属的仓库中没有存货,必须由其他区域的仓库来供货。同时,每个仓库都要维护公司销售的100000种商品的库存记录。
TPC-C测评
系统数据库由9张表组成,它们之间的关系如下图1:
其中,表框里的数字表示该表将要存放多少条记录,仓库数W的调整在测试中能够体现数据库所能够支持的数据规模的能力;表间的
数据表示数据的父子关系之间儿子的个数,比如一个
Warehouse要对应10个District等,另外,“+”号表示这种对应关系可能会更多。
事务说明
该系统需要处理的交易事务主要为以下几种:
1、新订单(New-Order) :客户输入一笔新的
订货交易;
2、支付操作(Payment) :更新客户帐户余额以反映其支付状况;
3、发货(Delivery) :发货(模拟批处理交易);
4、订单状态查询(Order-Status) :查询客户最近交易的状态;
5、库存状态查询(Stock-Level) :查询仓库库存状况,以便能够及时补货。
测试指标
TPC-C测试的结果主要有两个指标,即流量指标(Throughput,简称tpmC)和性价比(Price/Performance,简称Price/tpmC)。
流量指标(Throughput,简称tpmC):按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这4种交易的同时,每分钟可以处理多少个新订单交易。所有交易的
响应时间必须满足TPC-C
测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量
指标值越大说明系统的
联机事务处理能力越高。
性价比(Price/Performance,简称Price/tpmc):即测试系统的整体价格与流量指标的比值,在获得相同的tpmC值的情况下,价格越低越好。