oracle 压力测试工具benchmarksql

本文详细介绍了TPC-C基准测试,这是一种衡量OLTP系统性能的标准,通过模拟订单录入与销售环境来测试数据库的吞吐量。文章讲解了TPC-C测试的环境、事务类型、条件、指标以及Oracle数据库中使用BenchmarkSQL工具进行压力测试的过程。通过调整不同的仓库数和终端数,展示了如何评估Oracle数据库的性能,并提到了在RAC环境下的测试结果。同时,文章提及了AWR报告的生成与分析,用于评估和对比数据库的性能表现。
摘要由CSDN通过智能技术生成

TPC-C测试

TPC-C 于 1992 年 7 月 23 日认可为新的基准测试。TPC(Transaction Processing Performance Council,事务处理性能委员会)-C是衡量联机事务处理(OLTP,Online TransactionProcessing)系统的工业标准,是行业中公认的权威和最为复杂的在线事务处理基准测试。它通过模拟仓库和订单管理系统,测试广泛的数据库功能,包括查询、更新和  mini-batch事务(队列式小批量事务)。TPC-C基准测试针对一种模拟订单录入与销售环境测量每分钟事务(tpmC-transactions per minute)吞吐量。

Ø  标准测试模拟的程序环境

测试用到的模型是一个大型的批发销售公司,在地理分布的多个区域有业务,并且使用仓库管理。当业务扩展的时候,公司将添加新的仓库。每个仓库负责十个区域的供货,每个区域 3000 个客户服务,每个仓库维护 100000 种商品的库存纪录。如下图所示:

TPC-C 标准测试系统的数据库有 9 个表组成,他们之间的关系如下图所示:

其中W 代表仓库数,框中的数字表示该表将存放的记录条数,K代表1000,仓库数的调整在测试中能够体现数据库所能支持的数据规模的能力。每个 Warehouse 的数据量,其大小约为 76823.04KB,可以有小量的变化,因为测试过程中将会插入或删除现有记录。可以根据每个Warehouse的数据量,计算测试过程中的数据总量。

计算公式为:数据总量(KB)≈ Warehouse个数*76823.04KB

以10个Warehouse的数据量为例计算其数据总量大小约为:768230.4KB

Ø    标准测试模拟的事务处理

TPC-C 标准测试模拟了 5 种事务处理,通过这些事务处理来模拟真实的用户操作,事务分别为新订单(New-Order)、支付操作(Payment)、订单状态查询(Order-Status)、发货(Delivery)、库存状态查询(Stock-Level)。下面将对其执行的事务内容及特点进行详细介绍.

1.新订单(New-Order)

事务内容:对于任意一个客户端,从固定的仓库随机选取 5-15  件商品,创建新订单.其中 1%的订单要由假想的用户操作失败而回滚。

主要特点:中量级、读写频繁、要求响应快.

2.支付操作(Payment)

事务内容:对于任意一个客户端,从固定的仓库随机选取一个辖区及其内用

户,采用随机的金额支付一笔订单,并作相应历史纪录。

主要特点:轻量级,读写频繁,要求响应快

3.订单状态查询(Order-Status)

事务内容:对于任意一个客户端,从固定的仓库随机选取一个辖区及其内用户,读取其最后一条订单,显示订单内每件商品的状态。

主要特点:中量级,只读频率低,要求响应快

4.发货(Delivery)

事务内容:对于任意一个客户端,随机选取一个发货包,更新被处理订单的用户余额,并把该订单从新订单中删除.

主要特点:1-10 个批量,读写频率低,较宽松的响应时间

5.库存状态查询(Stock-Level)

事物内容:对于任意一个客户端,从固定的仓库和辖区随机选取最后 20 条订单,查看订单中所有的货物的库存,计算并显示所有库存低于随机生成域值的商品数量.

主要特点:重量级,只读频率低,较宽松的响应时间.

Ø  标准中事务处理需要满足的条件

TPC-C 标准测试要求事务处理必须满足下面的两组条件.

1.  事务处理要满足的时间及占有的比例

五种事务要满足的时间要求,包括键盘操作时间(Keying Time),思考时间

因子(Think  Time Distribution)以及 90%的响应时间(90th Percentile Response Time)限制。

2.  事务要满足的隔离级别

TPC-C 测试过程中应该满足的隔离级别要求。要求只能高不能低。

T1到T5分别指五种事务:New-Order,Payment,Order-Status,Delivery,Stock-Level。

P0到P3分别指:脏写,脏读,非重复性读,幻影

Ø  测试指标

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

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

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

Ø  TPC-C的测试工具

常用的开源TPC-C基准测试工具有BenchmarkSQL, dbt2-v0.23等等。

benchmarkSQL的安装部署

   (1).JDK1.7

   (2).apache ant 

benchmarkSQL的配置文件解析:

第一个部分是JDBC连接信息。

第二个部分是场景设置,其中runTxnsPerTerminal是每分钟执行事务数,runMins是执行多少分钟,limitTxnsPerMin是每分钟执行的事务总数,并且这里时间的单位是分钟。场景执行的最低条件是第二项大于0。

第三个部分是TPCC中,五个事务执行的比例,总数等于100,通常不用修改。

典型配置:

 

Oracle配置需要修改的地方:

ü  每个仓库要100M的空间1000个需要100G的存储表空间。

ü  设置ORACLE 批量提交参数:

SQL> alter system set commit_write='batch,nowait';

ü  使用强制软解析

SQL> alter system set cursor_sharing=force;

ü  使用O_DIRECT

SQL>alter system set filesystemio_options=directioscope=spfile;

SQL> alter system set disk_asynch_io=falsescope=spfile;

ü  修改最大连接数,打开游标数

SQL> alter system set processes=3000 scope=spfile;

SQL> ALTER SYSTEM SET open_cursors=900 SCOPE=BOTH;

SQL> alter system set session_cached_cursors=0scope=spfile;

ü  重启数据库

Ø  Benchmarksql 操作<和howTO.txt不同>:

在Oracle目标库创建了表空间和用户之后:

(1).runSQL.sh profile./sql.common/tableCreate.sql

(2).LoadSQL.shprofile

(3).runSQL.shprofile ./sql.common/indexCreate.sql

(4).runBenchmarkSQL.sh

1.      测试2c2g/oracle10g的测试结果

 

a.      单个仓库

 

[oracle@rhel651 run]$ ./runBenchmark.shmy_oracle1.properties

11:36:14,827 [main] INFO   jTPCC : Term-00,

11:36:14,839 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+

11:36:14,839 [main] INFO   jTPCC : Term-00,      BenchmarkSQL v5.0

11:36:14,839 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+

11:36:14,839 [main] INFO   jTPCC : Term-00,  (c) 2003, Raul Barbosa

11:36:14,839 [main] INFO   jTPCC : Term-00,  (c) 2004-2016, Denis Lussier

11:36:14,841 [main] INFO   jTPCC : Term-00,  (c) 2016, Jan Wieck

11:36:14,842 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+

11:36:14,842 [main] INFO   jTPCC : Term-00,

11:36:14,842 [main] INFO   jTPCC : Term-00, db=oracle

11:36:14,842 [main] INFO   jTPCC : Term-00,driver=oracle.jdbc.driver.OracleDriver

11:36:14,842 [main] INFO   jTPCC : Term-00,conn=jdbc:oracle:thin:@192.168.137.29:1521:iwhm

11:36:14,842 [main] INFO   jTPCC : Term-00, user=benchmarksql

11:36:14,842 [main] INFO   jTPCC : Term-00,

11:36:14,842 [main] INFO   jTPCC : Term-00, warehouses=1

11:36:14,842 [main] INFO   jTPCC : Term-00, terminals=1

11:36:14,845 [main] INFO   jTPCC : Term-00, runTxnsPerTerminal=10

11:36:14,845 [main] INFO   jTPCC : Term-00, limitTxnsPerMin=300

11:36:14,845

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值