欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

SwingbenchfororacleRAC使用方法图解

程序员文章站 2022-05-21 09:57:01
...

Swingbench for oracleRAC使用方法图解 1 Swingbench 简述 1.1 概述 这是 Oracle UK的一个员工在一个被抛弃的项目的基础上开发的。目前稳定版本2.2,最新版本2.3,基于JDK1.5。该工具是免费的,可以在作者的网站上*下载,并且拥有详细的使用文档。除了Swi

相关mysql视频教程推荐:《mysql教程

Swingbench for oracleRAC使用方法图解

1 Swingbench 简述
1.1 概述
这是Oracle UK的一个员工在一个被抛弃的项目的基础上开发的。目前稳定版本2.2,最新版本2.3,基于JDK1.5。该工具是免费的,可以在作者的网站上*下载,并且拥有详细的使用文档。除了Swingbench,作者还开发了两个相关工具:测试数据生成工具DataGenerator和跟踪文件分析工具Trace Analyzer。
Swingbench可 以执行4种不同的标准测试(benchmark),拥有三种前端展示方式Swingbench/Charbench/Minibench,其中 Charbench是字符模式的,另外两种是GUI模式的。另外还可以通过ClusterOverview可以聚合显示所有的结果。Swingbench的开发目的主要是用来展示RAC的负载和测试,但也可用于单实例环境。最新的2.3版本开始支持TimesTen内存数据库
下载地址:http://www.dominicgiles.com/downloads.html
作者博客:http://www.dominicgiles.com/blog/blog.html

目前网络上开源的oracle压力测试工具主要是orabm和swingbench,由于orabm不支持oracle 11g版本,因此本次测试使用了swingben进行了压力测试。另外,swingbench还能对rac进行测试。swingbench是UK based oracle Database Solutions group开发的一个oracle压力测试工具,好像是官方废弃的一个项目,官方页面http://dominicgiles.com/swingbench.html上可以下载最新的软件版本。swingbench可以运行在windows和linux平台,本次以windows为例。

2. 环境配置

测试客户端需要安装JDK,无需安装oracle client端

swingbench的版本为2.4 ,直接解压软件压缩包,解压后路劲如下,因是windows下做测试 所以使用 winbin目录下的批处理文件

SwingbenchfororacleRAC使用方法图解

主要使用到的是如下四个bat文件

SwingbenchfororacleRAC使用方法图解

主要的bat文件作用如下:

1、 bmcompare 用来对比测试结果

2、 ccwizard 是以CC种子为模板创建的运行测试数据

3、 clusteroverview 用来启动集群的压力测试,并查看测试结果

4、 coordinator 用来启动协调服务器

5、 minibench 用来注册节点到协调服务器

6、 oewizard 是以OE种子为模板创建运行测试数据

7、 shwizard 是以SH种子为模板创建运行测试数据

8、 swingbench 执行基准测试

3.测试

3.1 创建测试数据

swingbench不使用客户数据,而是按自己的规则创建测试数据,(生成的测试数据只能使用一次,测试过后 需要再次测试的话,需要重新创建测试数据,这点做的不好)

到目标目录下 运行oewizard.bat批处理文件,也可以在目录下双机oewizard.bat批处理文件运行

SwingbenchfororacleRAC使用方法图解

会看到如下界面

SwingbenchfororacleRAC使用方法图解

下一步

SwingbenchfororacleRAC使用方法图解

下一步,输入你需要测试的数据库的 //ip/sid 以及sys用户的密码

SwingbenchfororacleRAC使用方法图解

下一步,前三项不需要修改,为swingbench自动创建的schema,只需要修改datafile的存放路径即可。

SwingbenchfororacleRAC使用方法图解

下一步,选择创建数据的数据量 最小100M 最大1TB, 我选择为100GB 一般需要4-7小时,(和你硬件io性能有关)

PS:做测试时要确定对生产库没有影响,用swingbench测试,会占用大量的IO,我使用的是新核心系统的新存储,和旧的环境完全独立,所以swingbench测试对旧生产环境没有任何影响。

SwingbenchfororacleRAC使用方法图解

下一步,

SwingbenchfororacleRAC使用方法图解

下一步,数据开始插入,100G的数据大概要7个小时左右完成。

SwingbenchfororacleRAC使用方法图解

4、启动swingbench配置

4.1、Winbin目录下运行coordinator–g 启动协调服务器,如下

SwingbenchfororacleRAC使用方法图解

4.2、启动swingbench配置相关压力测试参数

SwingbenchfororacleRAC使用方法图解

SwingbenchfororacleRAC使用方法图解

SwingbenchfororacleRAC使用方法图解

出现如此主界面 主要参数设置 好对应的connect string,其他的参数建附录A

SwingbenchfororacleRAC使用方法图解

设置图上vhfs1节点圈圈内的参数,节点2同样操作。

将数据库OS 的ssh打开 则可以统计主机的cpu disk IO 信息

SwingbenchfororacleRAC使用方法图解

也可以拉出AWR报表

SwingbenchfororacleRAC使用方法图解

设置 insert,update ,select的比例

SwingbenchfororacleRAC使用方法图解

完成后点击保存,退出。

4.3 注册节点到注册服务器

SwingbenchfororacleRAC使用方法图解

执行如下命令:

c:\swingbench\winbin>minibench -g vhfs1-cs 192.192.5.107:1521:vhfs1 -co test &

c:\swingbench\winbin>minibench -g vhfs2-cs 192.192.5.107:1521:vhfs2 -co test &

命令参数详解

-g 参数是指group组,

-cs 参数是指定测试源,

-co 参数是指定coordinatorServer,本机主机名是test,默认是localhost。

5、测试

运行./clusteroverview进行测试,依次启动oracleRAC的两个节点数据库连接,如下

SwingbenchfororacleRAC使用方法图解

压力测试结果如下,

SwingbenchfororacleRAC使用方法图解

SwingbenchfororacleRAC使用方法图解SwingbenchfororacleRAC使用方法图解

6、测试结果统计对比

结果为XML文档

可以利用bmcompare.bat 对比两个测试结果,语法如图,结果会生产在本地。

c:\swingbench\winbin>bmcompare.bat -r results00003 results00013

附录:

A,swingbench的相关测试参数

1. swingbench GUI上的users:thenumber of users(threads) that attach to a database and the amount and tye ofwork they perform. users can dynamically monitor the responsetimes and loadwhich is displayed in a series of graphs.
这里的users是控制同时连接到oracle的用户数量。我们知道每个连接到oracle的用户都将分配PGA,所以这里应该是理解为并行度。
2. min/max think time: 每个交易之间最小/大的思考时间。如果设置min think time,每个交易之间将间隔规定时间。
3. max trans:如果设置将限制最大的交易数量。
4. 最顶端的transaction面板:load: Indicates the "weight" of the transaction incomparison to othe transactions. A higher weight indicates that itmore likely to be run.
这个面板主要是可以取消一些固定的交易类型。load这个栏主要是用于调整整个测试中某些交易的权重。例如:browse product主要是select 语句,可以增加他的权重,表示更多的人查询。
关于oewizard中的几个参数:
Number of Customers: 预加载到数据库表中的用户数量。
Number of Orders:预加载到数据库表中的Orders数量。
整个OE的测试是基于9张表的,那么用oewizard预加载数据量不同,测试结果是不是不同呢?
对oracle自己来说,有索引的表性能在大小一定的时候是不会有什么区别的,但是当表的行数达到一定的程度,例如几个亿行,索引性能还不如全表扫描的性能。因此对于OE所允许的范围,我认为表数据大小对性能影响不会很大。
Swingbench是一个压力测试工具,其结果tpmc也是表示每分钟所能做的交易数量。如果预加载的数据越多,而TX中所有类型的权重固定的 话,需要调整并行users的数量,以取得一个最佳的tpms值。我之前测试的结果来看,并行user固定,预加载的数据越多,得到的tpmc结果越小, 我也有点迷糊了,后来仔细分析了之后才发觉,应该相应修改并行users的数量。
通过修改TX panel里的各个交易类型的权重,也可以得出oracle的一些性能参数,例如查询加重,如果tpmc的值还差不多,说明这个数据库的查询能力还是不错的。

B,TPMC介绍

按照TPC的定义,流量指标描述了系统在执行Payment、Order-status、Delivery、Stock-Level这四种交易的同时,每分钟可以处理多少个New-Order交易。所有交易的响应时间必须满足TPC-C测试规范的要求。
流量指标值越大越好!
TPMC计算依据
为了方便计算数据库服务器的造型,我们约定:
" 系统同时在线用户数为1500人(U1);
" 平均每个用户每分钟发出2次业务请求(N1);
" 系统发出的业务请求中,更新、查询、统计各占1/3;
" 平均每次更新业务产生3个事务(T1);
" 平均每次查询业务产生8个事务(T2);
" 平均每次统计业务产生13个事务(T3);
" 一天内忙时的处理量为平均值的5倍;
" 经验系数为1.6;(实际工程经验)
" 考虑服务器保留30%的冗余;
服务器需要的处理能力为:
TPC-C=U1*N1*(T1+T2+T3)/3*3*经验系数/冗余系数
则应用服务器的处理性能估算为:
TPC-C= 1500*2*(3+8+13)/3*5*1.6/0.7=274,285 tpmC
数据库服务器关系到整个系统的稳定运行,考虑到高可靠性和高可用性,并注重设备的可扩展性和性价比,系统将配置两台TPC-C值不小于28万的高性能数据库服务器