SwingBench下载地址:http://www.dominicgiles.com/downloads.html
SwingBench文档下载地址:http://www.dominicgiles.com/Swingbench.pdf
一、环境
Linux虚拟机版本:oracle linux 6.9
Oracle:11.2.0.4 RAC
SwingBench:2.6(此版本要求JDK1.8以上)
Windows 宿主机版本:wind7
JDK:1.8.0_144
在windows7 上运行swingbench测试脚本,对linux中的oracle数据库进行压力测试。
二、配置windows环境变量
2.1 打开环境变量窗口
计算机(右键)-属性-高级系统设置-环境变量
2.2 新建系统变量:JAVA_HOME
C:\Program Files\Java\jdk1.8.0_144 (你的JDK安装路径)
2.3 修改系统变量:PATH
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
2.4 新建系统变量:CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)
2.5 验证生效
分别输入java,javac,java -version,javac -version命令以验证环境变量是否生效
2.6 注意事项
有个事情要特别注意,千万不要把swingbench放到中文目录下,否则可能点击后无反应,切记! (java和swingbench目录就尽量不要有中文)
三、执行压测
3.1 在wind7上运行swingbench\winbin下的oewizard.bat脚本
- oewizard :安装一个简单的订单输入架构,用于创建繁重的写入工作负载
- shwizard :安装用于创建分析工作负载的简单星型架构
- jsonwizard :安装用于创建JSON CRUD工作负载的简单JSON模式
- tpcdswizard :安装类似 TPC-DS 的模式,用于创建复杂的分析工作负载
- tpchwizard :安装类似 TPC-H 的架构,用于创建中等复杂度的分析工作负载
- moviewizard :安装一个 Movie Stream 架构,该架构主要具有类似 OLTP 的事务,但也使用 AQ 分片队列来模拟微服务中使用的事件。
该向导将引导您完成可以为数据库架构的配置指定的各种选项。使您能够定义其大小以及要使用的 Oracle 数据库的功能,甚至要在数据生成中使用多少个线程。完成后,它将创建用户、表、逻辑并将数据直接生成到数据库中。在完成数据生成后,它将对表进行索引和分析。它的最后一步是验证架构,以确保所有内容都已正确创建。如果没有,则可以使用命令行工具来重建某些方面,例如索引或存储过程
也可以通过命令创建:
./oewizard -cl -create -cs //localhost/PDB1 -u soe -p soepassword -scale 50 -tc 32 -dba "sys as sysdba" -dbap welcome1 -ts +DATA上述命令将在命令行模式下运行向导,设置 username、password、connectstring,比例为 50 (50GB),使用 32 个线程还设置 dba 用户名、密码和表空间。对于命令行生成,您需要指定命令行上所需的所有参数。 有关向导的所有可能命令行参数的完整列表,请运行以下命令 ./oewizard -h
点击NEXT
3.2 选择Version2.0下一步
这里选2就行。
3.3 创建测试数据
由于是第一次运行所以我们选择第一个create the order entry创建测试数据,然后点击NEXT。
3.4 编辑数据库信息
connect string的格式为//oracle数据库所在主机的IP地址/oracle数据库的实例名,DBA PASSWORD填sys用户的密码,其他默认
点击next前请确认你的oracle所在主机开启了监听并且监听成功听到了数据库,如果没有满足任一点,点击next后会报错;
还有一点要注意的是虚拟机IP地址和默认网段等配置需要和win7(宿主机)的本地连接的IP信息匹配而不是网络连接的IP信息;如果你在此步一开始因为没有配置好报错,那么请你在修改后关闭此界面再次运行一次,否则有可能无端报错。
然后next
3.5 编辑要创建对象信息
前三项默认,第四项表空间可以按自己的情况进行修改,当前环境为RAC,所以Tablespace’s Datafile位置为+DATA,提前建立好表空间。
3.6 数据库选项
这里的tablespace type选择normal,绝大部分情况下我们都是用的normal。
我选择默认,可根据实际需求修改。NEXT
3.7 选择测试数据大小
根据自己情况选择测试数据的大小,这里我选择1GB,Next。
可以按照它的建议来,cpu密集型的测试数据量0.4g就可以,IO密集型的需要18G,这里注意,临时表空间已经建立好,并且空间要够,否则io密集型的数据索引可能创建失败。
测试要确定对生产没有影响,测试库如果和生产用同一台可能会影响生产库的IO
3.8 选择并行度
选择并行度,这里我选择默认的8。
并行度考虑下主机的实际情况。
3.9 执行finsh建立测试数据
点击finsh开始建立测试数据。建立测试数据时可以监视数据库的alert日志,查看数据库是否在建立数据。你可以在建立测试数据前将oracle数据库的日志组增大以提高效率。
测试数据建立完成后是以下页面,然后关闭。
3.10 运行swingbench\winbin\swingbench.bat脚本
进入swingbench目录,双击swingbench.bat脚本
- swingbench :是一个图形丰富的前端,使您能够修改所有参数以及运行和监控工作负载。
- minibench :是一个更简单的前端,使您能够运行工作负载和监控,但必须在命令行中或通过编辑配置文件来设置参数。
- charbench :是一个仅限命令行的工具,其中所有参数都在命令行上设置,并且延迟和吞吐量等指标被写入标准输出或文件。
charbench 样例
./charbench -c ../configs/SOE_Server_Side_V2.xml -u soe -p soe -uc 4 -cs //localhost/orderentry -min 0 -max 10 -intermin 200 -intermax 500 -v users,tpm,tps,errs,vresp
Author : Dominic Giles
Version : 2.6.0.1137
Results will be written to results.xml.
Hit Return to Terminate Run...
Time Users TPM TPS Errors NCR UCD BP OP PO BO SQ WQ WA
10:58:35 [0/4] 0 0 0 0 0 0 0 0 0 0 0 0
10:58:37 [4/4] 0 0 0 0 0 248 414 0 0 0 0 0
10:58:38 [4/4] 8 8 0 0 0 32 213 0 19 209 0 0
10:58:39 [4/4] 17 9 0 0 19 39 33 0 10 198 0 0
10:58:40 [4/4] 26 9 0 0 7 12 150 0 10 198 0 0
10:58:41 [4/4] 37 11 0 93 7 10 109 0 10 198 0 0
10:58:42 [4/4] 46 9 0 22 7 30 89 0 28 198 0 03.11 执行压测
USERNAME:soe
PASSWORD:soe
connectstring:oracle数据库所在虚拟机IP地址\实例名
用户数可自己根据实际情况修改,最后点击上图中红色圆形标注按钮,开始压力测试。
如果将每个交易的最小间隔时间改为 0ms,最大间隔时间改为 0ms,那么 Number of users 建议设置为 CPU 核数的 2~4 倍。我们知道每个连接到 oracle 的用户都将分配 PGA,所以这里应该是理解为并行度。
如果将每个交易的最小间隔时间改为 5ms,最大间隔时间改为 30ms,那么为了能够测试出最佳的TPS值,那么需要不断调整Number of users数,直到获取一个稳定且最佳的值为止。
如果将每个交易的最小间隔时间改为 0ms,最大间隔时间改为 0ms,那么 Number of users 建议设置为 CPU 核数的 2~4 倍。我们知道每个连接到 oracle 的用户都将分配 PGA,所以这里应该是理解为并行度。
如果将每个交易的最小间隔时间改为 5ms,最大间隔时间改为 30ms,那么为了能够测试出最佳的TPS值,那么需要不断调整Number of users数,直到获取一个稳定且最佳的值为止。
SwingBench 附带的代码包括 7 个基准测试,OrderEntry、SalesHistory、TPC-DS Like、TPC-H Like、JSON、Movie Stream 和 StressTest。
介绍:https://www.dominicgiles.com/swingbench/
四、删除测试对象
压力测试完毕后,可以将soe用户及其数据文件和表空间删除。
[oracle@rac1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Sep 24 03:54:21 2017
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> drop user soe cascade;
User dropped.
SQL> drop tablespace soe INCLUDING CONTENTS;
Tablespace dropped.




