1、调整数据库主机网卡队列
ethtool -G ens33 rx 4096
ethtool -G ens33 tx 4096
2、调整磁盘的IO调度算法
--如果是机械盘,就改成deadline,如果是nvme 就改成 noop
echo 'echo noop > /sys/block/sdb/queue/scheduler' >> /etc/rc.local
cat /sys/block/sdb/queue/scheduler
noop [deadline] cfq --看中括号括起来的值就是当前值
3、安装 benchmarkSQL 5.0
--安装依赖包
yum install gcc glibc-headers gcc-c++ gcc-gfortran readline-devel libXt-devel pcre-devel libcurl libcurl-devel -y
yum install ncurses ncurses-devel autoconf automake zlib zlib-devel bzip2 bzip2-devel xz-devel -y
yum install java-1.8.0-openjdk ant -y
--编译安装R语言
--下载地址:https://mirror.bjtu.edu.cn/cran/src/base/R-3/R-3.6.3.tar.gz
wget https://mirror.bjtu.edu.cn/cran/src/base/R-3/R-3.6.3.tar.gz
yum install pango-devel pango libpng-devel cairo cairo-devel -y
tar -zxf R-3.6.3.tar.gz
cd R-3.6.3
./configure && make && make install
--编译安装htop
--下载地址: https://github.com/htop-dev/htop/releases
unzip htop-3.3.0.zip
cd htop-3.3.0
./autogen.sh && ./configure && make && make install
--安装ant
--下载地址:https://ant.apache.org/bindownload.cgi
tar -xzvf apache-ant-1.10.14-bin.tar.gz -C /usr/local
vim /etc/profile
export ANT_HOME=/usr/local/apache-ant-1.10.14
export PATH=$PATH:$ANT_HOME/bin
source /etc/profile
--检查安装情况
[root@node1:/root]$ java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
[root@node1:/root]$
--配置benchmarksql
--下载 benchmarksql: https://udomain.dl.sourceforge.net/project/benchmarksql/benchmarksql-5.0.zip
--oracle用户操作
unzip benchmarksql-5.0.zip
cd benchmarksql-5.0
--复制JDBC驱动
cd benchmarksql-5.0/lib/oracle
--Copy the ojdbc<version>.jar to use with Oracle here
cp /home/oracle/app/oracle/product/19c/db/jdbc/lib/ojdbc8.jar ./
--新建配置文件
cd /home/oracle/benchmarksql-5.0/run/
vi props.ora
--主要是修改这些
db=oracle
driver=oracle.jdbc.driver.OracleDriver
conn=jdbc:oracle:thin:@127.0.0.1:1521:ora19c
user=benchmarksql
password=oracle
warehouses=50 --被测试仓库数
loadWorkers=4 --数据装载并发数(只在初始化时生效)
terminals=20 --设置了在性能测试期间将使用的模拟终端(用户)数量)-数据连接并发数
runTxnsPerTerminal=200 --指定了每个终端在性能测试期间要执行的事务数量
runMins=0 --要运行指定的分钟,当该参数为非0时,runTxnsPerTerminal 必须等于零,否则不跑
limitTxnsPerMin=1000 --每分钟执行的事务数
...
osCollectorDevices=net_ens33 blk_sda --修改网卡名字
--以上参数建议设置terminals 、runMins和limitTxnsPerMin,这样可以全速跑
--配置文件指定 TPC-C 仓库数为 500 仓。
4、TPC-C 测试
create tablespace benchmarksql datafile '/home/oracle/app/oracle/oradata/ORA19C/benchmarksql.dbf' size 100m autoextend on;
create user benchmarksql identified by oracle default tablespace benchmarksql;
grant dba to benchmarksql;
--创建表
cd benchmarksql-5.0/run/
./runSQL.sh props.ora tableCreates
--编译
--如果前面配置的编译后修改了请再次编译
[oracle@node1:/home/oracle/benchmarksql-5.0]$ ant
Buildfile: /home/oracle/benchmarksql-5.0/build.xml
init:
compile:
[javac] Compiling 11 source files to /home/oracle/benchmarksql-5.0/build
[javac] warning: [path] bad path element "/home/oracle/benchmarksql-5.0/lib/oracle/oraclepki.jar": no such file or directory
[javac] 1 warning
dist:
[jar] Building jar: /home/oracle/benchmarksql-5.0/dist/BenchmarkSQL-5.0.jar
BUILD SUCCESSFUL
Total time: 1 second
[oracle@node1:/home/oracle/benchmarksql-5.0]$
--执行数据装载
./runLoader.sh props.ora
--创建索引
./runSQL.sh props.ora indexCreates
--性能测试
--模拟使用500仓库和200并发,使用runBenchmark.sh脚本进行测试
./runBenchmark.sh props.ora
Term-00, Running Average tpmTOTAL: 10648.05 Current tpmTOTAL: 2136 Memory Usage: 36MB / 63MB
11:52:35,823 [Thread-11] INFO jTPCC : Term-00,
11:52:35,823 [Thread-11] INFO jTPCC : Term-00,
11:52:35,823 [Thread-11] INFO jTPCC : Term-00, Measured tpmC (NewOrders) = 3449.88
11:52:35,823 [Thread-11] INFO jTPCC : Term-00, Measured tpmTOTAL = 9370.62 --每分钟执行的事务数,这里的值是直接证明当前环境的事务之性能力
11:52:35,824 [Thread-11] INFO jTPCC : Term-00, Session Start = 2024-11-19 11:52:34
11:52:35,824 [Thread-11] INFO jTPCC : Term-00, Session End = 2024-11-19 11:52:35
11:52:35,824 [Thread-11] INFO jTPCC : Term-00, Transaction Count = 200 --单位时间内总共执行的事务数( 配置文件中terminals * runTxnsPerTerminal)
--5.清理
测试完之后应该清理数据。进入run目录,在终端下执行
./runSQL.sh props.ora indexDrops
./runSQL.sh props.ora tableTruncates
./runSQL.sh props.ora tableDrops
--生成报告
cd /home/oracle/benchmarksql-5.0/run
./generateReport.sh my_result_2024-11-19_120753/
[oracle@node1 my_result_2024-11-19_120753]$ ls -tlr
total 296
-rw-r--r-- 1 oracle oinstall 972 Nov 19 12:07 run.properties
-rw-r--r-- 1 oracle oinstall 34342 Nov 19 12:16 tpm_nopm.png
drwxr-xr-x 2 oracle oinstall 125 Nov 19 12:16 data
-rw-r--r-- 1 oracle oinstall 39983 Nov 19 12:16 latency.png
-rw-r--r-- 1 oracle oinstall 27886 Nov 19 12:16 cpu_utilization.png
-rw-r--r-- 1 oracle oinstall 26681 Nov 19 12:16 dirty_buffers.png
-rw-r--r-- 1 oracle oinstall 37048 Nov 19 12:16 blk_sda_iops.png
-rw-r--r-- 1 oracle oinstall 33013 Nov 19 12:16 blk_sda_kbps.png
-rw-r--r-- 1 oracle oinstall 37642 Nov 19 12:16 net_ens33_iops.png
-rw-r--r-- 1 oracle oinstall 33755 Nov 19 12:16 net_ens33_kbps.png
-rw-r--r-- 1 oracle oinstall 7141 Nov 19 12:16 report.html
-- 会在my_result_2024-11-19_120753生成一堆png图片和html报告
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。