oracle 压测工具 BenchmarkSQL

os: centos 7.6
db: oracle 19.3

oracle 安装的是 19.3 版本,使用的是 oracle MAA 架构。
BenchmarkSQL 有一些依赖,先处理好依赖

配置 epel 源

# wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
# yum clean all  
# yum makecache  

安装 ant、R

# yum install ant R R-devel

安装 oracle JDK

# which java
/usr/bin/java

# /usr/bin/java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

# yum list installed|grep -i java
java-1.7.0-openjdk.x86_64               1:1.7.0.221-2.6.18.0.el7_6     @updates 
java-1.7.0-openjdk-headless.x86_64      1:1.7.0.221-2.6.18.0.el7_6     @updates 
java-1.8.0-openjdk.x86_64               1:1.8.0.212.b04-0.el7_6        @updates 
java-1.8.0-openjdk-headless.x86_64      1:1.8.0.212.b04-0.el7_6        @updates 
javapackages-tools.noarch               3.4.1-11.el7                   @base    
python-javapackages.noarch              3.4.1-11.el7                   @base    
tzdata-java.noarch                      2019a-1.el7                    @updates 

# rpm -qa |grep -i -E 'java|jdk' |sort
copy-jdk-configs-3.3-10.el7_5.noarch
java-1.7.0-openjdk-1.7.0.221-2.6.18.0.el7_6.x86_64
java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.0.el7_6.x86_64
java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
java-1.8.0-openjdk-devel-1.8.0.212.b04-0.el7_6.x86_64
java-1.8.0-openjdk-headless-1.8.0.212.b04-0.el7_6.x86_64
javapackages-tools-3.4.1-11.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2019a-1.el7.noarch


# rpm -e --nodeps tzdata-java-2019a-1.el7.noarch ;
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.221-2.6.18.0.el7_6.x86_64 ;
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.0.el7_6.x86_64 ;
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64 ;
rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.212.b04-0.el7_6.x86_64 ;
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.212.b04-0.el7_6.x86_64 ;

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载 JDK 1.8

# rz
# rpm -Uvh ./jdk-8u211-linux-x64.rpm

# which java
/usr/bin/java
# /usr/bin/java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${CLASSPATH}
export PATH=${JAVA_HOME}/bin:$PATH

下载 benchmarksql-5.0

https://sourceforge.net/projects/benchmarksql/ 下载 benchmarksql-5.0.zip
上传到服务器后解压

# su - oracle
$ rz
$ unzip ./benchmarksql-5.0.zip
$ cd benchmarksql-5.0/
$ export CLASSPATH=.:/usr/share/java/ant-launcher.jar:${CLASSPATH} 
$ ant -buildfile ./build.xml
Buildfile: /home/oracle/benchmarksql-5.0/build.xml

init:
    [mkdir] Created dir: /home/oracle/benchmarksql-5.0/build

compile:
    [javac] Compiling 11 source files to /home/oracle/benchmarksql-5.0/build

dist:
    [mkdir] Created dir: /home/oracle/benchmarksql-5.0/dist
      [jar] Building jar: /home/oracle/benchmarksql-5.0/dist/BenchmarkSQL-5.0.jar

BUILD SUCCESSFUL
Total time: 1 second

oracle 驱动

$ cat ./lib/oracle/README.txt 
Copy the ojdbc<version>.jar to use with Oracle here, or make
sure that the environment variable ORACLE_HOME is set properly
and the JDBC driver is found at $ORACLE_HOME/lib.

$ cp $ORACLE_HOME/jdbc/lib/ojdbc8.jar ./lib/oracle/

配置log4j

$ find ./ -name log4j.properties
./run/log4j.properties

$ vi ./run/log4j.properties  
  
log4j.rootLogger=INFO, CONSOLE  
  
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
log4j.appender.CONSOLE.Threshold=INFO  
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern= %d{HH:mm:ss,SSS} [%t] %-5p %x %C{1} : %m%n 

修改配置文件

查看 HOW-TO-RUN.txt 这两个文件,里面有详细的步骤。

$ cd ~/benchmarksql-5.0/run
$ vi props.ora

db=oracle
driver=oracle.jdbc.driver.OracleDriver
conn=jdbc:oracle:thin:@192.156.56.101:1521/srv_pdb1
user=scott
password=tiger

warehouses=3000
loadWorkers=256

terminals=256
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=0
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=2
//Number of total transactions per minute
limitTxnsPerMin=0

//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=true

//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4

// Directory name to create for collecting detailed result data.
// Comment this out to suppress.
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
osCollectorScript=./misc/os_collector_linux.py
osCollectorInterval=1
//osCollectorSSHAddr=user@dbhost
osCollectorDevices=net_eth0 blk_sda

-- drop user scott cascade;
create user scott identified by tiger 
profile default 
default tablespace USERS
temporary tablespace TEMP
account unlock;

alter user scott quota unlimited on USERS;

grant create session to scott;
grant connect, resource to scott;

一步完成 创建表、生成测试数据、导入数据。

$ cd ~/benchmarksql-5.0/run
$ ./runDatabaseBuild.sh ./props.ora

tpc-c 压测以及性能指标

$ cd ~/benchmarksql-5.0/run
$ ./runBenchmark.sh ./props.ora

tpc-c 结果绘图,生成报告

$ ./my_result_2019-06-10_105020
├── data
│   ├── result.csv
│   └── runInfo.csv
└── run.properties

1 directory, 3 files

$ cd ~/benchmarksql-5.0/run
$ ./generateGraphs.sh ./my_result_2019-06-10_105020/
$ ./generateReport.sh ./my_result_2019-06-10_105020/

tpc-c 重新压测

$ cd ~/benchmarksql-5.0/run
$ ./runDatabaseDestroy.sh ./props.ora
$ ./runDatabaseBuild.sh ./props.ora
$ ./runBenchmark.sh ./props.ora

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值