国产数据库TPC-C基准性能测试应用与分析
随着十二五规划国家重大专项的制定发布,将国产数据库的发展列入国家基础软件重点支持对象之一。同时,国产数据库的应用也变得越来越广泛,目前需要对国产数据库的质量与国外数据库质量进行对比的需要日益迫切,而重点又围绕着数据库处理的效率问题。因此,我们选择了TPC-C的测试标准对此加以测试。本文描述了TPC-C的标准,同时提出了TPC-C的的设计与实现方式,最后通过国外Oracle数据库与国产数据库的对比性能测试实例给出了TPC-C测试的流程与方法,为实施数据库性能测试提供了指导依据。
本文引用地址://m.amcfsurvey.com/article/138823.htm1、 TPC-C概述
TPC-C测试标准是TPC(Transaction Processing Performance Council)委员会公布的一个用于衡量在线事务处理系统性能和性能价格比的测试标准。TPC组织定义了一套严格的TPC-C的测试模型和架构为实现其相应的软件提供依据和标准,业务模型主要是依据实际批发商业活动作为其设计模型。TPC-C规范是专门针对联机交易处理系统(OLTP系统)的,一般情况下我们也把这类系统称为业务处理系统。这类系统具有比较鲜明的特点,这些特点主要表现如下。
· 多种事务处理并发执行,充分体现了事物处理的复杂性;
· 在线与离线的事务执行模式;
· 多个在线会话终端;
· 适中的系统运行时间和应用程序运行时间;
· 大量的磁盘I/O数据流;
· 强调事务的完整性要求(ACID);
· 对于非一致的数据分布,使用主键和从键进行访问;
· 数据库由许多大小不一、属性多样,而又相互关联的数据表组成;
· 存在较多数据访问和更新之间的资源争夺。
此标准可以在TPC的网站提供免费下载。同时发布的TPC-C的报告中,给出了物理服务器的名称、操作系统类型、数据库类型、是否集群、tpmC和性价比等。从中可以看出只要符合TPC-C测试标准开发的应用,同时固定其中的配置,变化被测的对象,如物理服务器、操作系统和数据库,就可以它们进行横向的基准测试,通过tpmC的优劣来评估被测对象的好坏。
2、 TPC-C的设计
TPC-C测试标准的主要设计目标是:1)模拟包括更新操作和只读操作的多类型事务;2)模拟不同特征的事务处理,包括在线式(对响应时间有严格要求)和延时式(对响应时间的要求比较宽松);3)所有事务必须严格符合ACID特性;4)拥有复杂的数据结构和联系;5)采用多样的数据访问方式;6)模拟重负载下达数据库上的多用户并发操作。下图为TPC-C的设计模型。
图 1 TPC-C设计模型-资料来源于中国评测
TPC-C测试用到的模型是一个大型的商品批发销售公司,它拥有若干个分布在不同区域的商品仓库。当业务扩展的时候,公司将添加新的仓库。每个仓库负责为10个销售点供货,每个销售点为3000个客户提供服务,每个客户提交的订单中,平均每个订单有10项产品,所有订单中约1%的产品在其直接所属的仓库中没有存货,必须由其他区域的仓库来供货。同时,每个仓库都要维护公司销售的100000种商品的库存记录。
TPC-C测试系统数据库由9张表组成,它们之间的关系如图所示。
图 2 TPC-C测试系统数据库-资料来源于中国评测
其中,表框里的数字表示该表将要存放多少条记录,仓库数W的调整在测试中能够体现数据库所能够支持的数据规模的能力;表间的数字表示表数据的父子关系之间儿子的个数,比如一个Warehouse要对应10个District等,另外,“+”号表示这种对应关系可能会更多。
该系统需要处理的交易事务主要为以下几种。
· 新订单:客户输入一笔新的订货交易;
· 支付操作:更新客户账户余额以反映其支付状况;
· 发货:发货(模拟批处理交易);
· 订单状态查询:查询客户最近交易的状态;
· 库存状态查询:查询仓库库存状况,以便能够及时补货。
有关事物的具体描述如下。
· 新订单:其主要事务内容为对于任意一个客户端,从固定的仓库中随机选取5~15件商品,创建新订单。其中1%的订单,要由于假想的用户操作失败而回滚;该事务的主要特点为读写、频繁、要求响应快,是系统中最典型的操作,也是系统处理中的主要工作量,最终也是以数据库系统每分钟能够处理的新订单数来对数据库系统的性能进行评价。
· 支付操作:其主要事务内容为对于任意一个客户端,从固定仓库随机选取一个辖区及其内的用户,采用随机的金额支付一笔订单,并同时将该订单记录为相应历史订单。该事物的主要特点为10个批量、读写、较少、较宽松的响应时间。
· 订单状态查询:其主要事务内容为对于任意一个客户端,从固定仓库随机选取一个辖区及其内用户,读取该用户的最后一条订单,显示订单内每件商品的状态。该事物的主要特点为只读、较少、要求响应快。
· 发货:其主要事务内容为对于任意一个客户端,随机选取一个发货包,更新被处理订单的用户账户余额,并把修改后的订单从新订单中删除。该事物的主要特点为读写、频繁、响应快。
· 库存状态查询:其主要事务内容为对于任意一个客户端,从固定的仓库和辖区选取最后的20条订单,检查订单中所有货物的库存。计算并显示所有库存低于随机生成阈值的商品数量。该事物的主要特点为只读、较少、较为宽松的响应时间。
对于以上这5种类型的事务交易,前4种类型的交易要求响应时间在5秒钟以内;对于库存状况查询交易,要求响应时间在20秒以内。同时,这5种交易最终的比例还必须满足一定的要求,即支付操作的比例不得少于43%,订单状态查询、发货和库存状态查询的比例分别均不得少于4%。具体而言,5种事务要满足的时间、比例及隔离级别要求如表所示。
表 1 5种类型的事务交易-资料来源于中国评测
TPC-C测试的结果主要有两个指标,即流量指标(Throughput,简称tpmC)和性价比(Price/Performance,简称Price/tpmC)。
· 流量指标(Throughput,简称tpmC):按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这4种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满足TPC-C测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量指标值越大说明系统的联机事务处理能力越高。
· 性价比(Price/Performance,简称Price/tpmC):即测试系统的整体价格与流量指标的比值,在获得相同的tpmC值的情况下,价格越低越好。
3、 数据性能对比测试
测试方法:通过上述的设计模型建立相关的表,对表中的数据按设计模型的规模进行填充。将主要的并发业务模型分别部署到不同的并发客户端上,通过主控台的统一控制控制测试的启动、执行和结束,最后统计各个客户端传来的性能数据,通过统计分析展现给测试人员,帮助分析数据库的性能。
测试场景:分别在Oracle和国产数据库测试1000个仓库持续2个小时,同时收集服务器端的系统资源占用、5个事务的响应时间,业务比例关系以及最终的流量指标(Throughput,简称tpmC)指标。
在测试过程中,我们采用两台配置完全相同的服务器分别安装Oracle数据库11g的版本和国产数据库管理系统。网络采用1000Gbps快速以太网交换机进行互联,测试端采用一体化分布式管理的方法,即一个主控管理台和多个分布式并发客户端,测试代码放在主控台上,通过分发到客户端实现大的并发访问。测试拓扑图如下:
图 3 测试拓扑图-资料来源于中国评测
结果分析对比:
1)Tpmc的数据对比:
上图的分析,Oracle在1000个仓库下产生的Tpmc值为11,840.90 tpmC
国产数据库管理系统在1000个仓库下产生的Tpmc值为12,840.01 tpmC
2)时间特性分析
3)服务器的资源特性分析
a)CPU的利用率对比
通过上图的对比,Oracle数据库服务器多核CPU的利用均等的方式别调用,而国产数据库管理系统服务器的CPU利用则重点在3个核CPU上,对多核处理的均等调用方式有待进一步提升。
b)内存的利用率对比
通过上图的对比分析,Oracle数据库在测试过程内存的使用迅速只剩下5000MB一下的可用空间,而国产数据库管理系统服务器的内存占用是渐进的方式的消耗。
c)网络的利用率对比
通过上图的对比分析,Oracle数据库服务器在测试过程中,服务器的发出流量达到6000KBytes/Sec,接收的流量达4000Kbytes/Sec;国产数据库服务器在测试过程中,服务器的发出流量达到2000KBytes/Sec,接收的流量达1500Kbytes/Sec。
d)磁盘的利用率对比
通过上图的对比分析,Oracle数据库服务器在测试过程中,数据库服务器的磁盘繁忙度达100%;而国产数据库管理系统的磁盘繁忙程度在逐渐下降。
4、 结论
本文介绍了一种测试数据库性能测试的方法TPC-C,通过仓库的商业模拟模拟数据库的在线处理方式。通过这种测试方法可以对国产数据库管理系统和国外的数据库在在线处理的性能上进行对比分析,帮助国产数据库管理系统的制造商改进其产品性能提供了客观的评价依据。
交换机相关文章:交换机工作原理
评论