概述
本文在个人笔记本电脑的vmware虚拟机上安装PanWeiDB2.0,使用benchmarkSQL工具测试TPCC性能。
本文中测试相关软硬件环境和测试结果,仅作参考。
环境描述
服务器配置
节点配置
型号 | 配置参数 | 值 | 数量 |
HP EliteBook 645 14 inch G10 Notebook PC | 处理器 | AMD Ryzen 5 7530U with Radeon Graphics 六核 | 1台 |
内存 | 16 GB | ||
系统硬盘 | 200GB SSD | ||
以太网卡 | RTL8168/8111/8112 Gigabit Ethernet Controller |
测试软件环境
软件项目 | 配置 |
操作系统 | BClinux For Euler 21.10U3 LTS |
数据库软件 | PanWeiDB_V2.0-S3.0.1_B01-bclinux-64bit |
测试工具
工具名称 | 用途 |
Benchmarksql 5.0 | BenchmarkSQL是对OLTP数据库主流测试标准TPC-C的开源JAVA实现,用于对数据库事务处理能力的评估测试。 |
环境预调优
操作系统调优
--关闭irqbalance服务
systemctl stop irqbalance
systemctl disable irqbalance
--检查
cat /proc/sys/kernel/numa_balancing
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
--设置(PanWeiDB部署过程中已关闭大页和numa_balance,通常无需补设置)
echo 0 > /proc/sys/kernel/numa_balancing
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag
benchmarksql部署
软件下载
benchmarksql下载:https://udomain.dl.sourceforge.net/project/benchmarksql/benchmarksql-5.0.zip
htop下载: https://github.com/htop-dev/htop/releases
R语言下载: https://mirror.bjtu.edu.cn/cran/src/base/R-3/R-3.6.3.tar.gz
ant下载:http://ant.apache.org/dist/ant/binaries/
JDBC驱动:https://opengauss.org/zh/download.html
安装所需要的包
yum install -y gcc glibc-headers gcc-c++ gcc-gfortran readline-devel libXt-devel pcre-devel libcurl libcurl-devel ncurses ncurses-devel autoconf automake zlib zlib-devel bzip2 bzip2-devel xz-devel java-1.8.0-openjdk ant
安装ant(如需)
mkdir -p /usr/local/apache-ant/
tar -xzvf apache-ant-1.10.15-bin.tar.gz -C /usr/local/apache-ant
cd /usr/local/apache-ant/apache-ant-1.10.15
mv * ../
vi /etc/profile
添加以下至文件末尾
export ANT_HOME=/usr/local/apache-ant
export PATH=$ANT_HOME/bin:$PATH
source /etc/profile ##或重登录登录
ant -versioin
安装R语言
tar -zxf R-3.6.3.tar.gz
cd R-3.6.3
./configure
make
make install
###(generateReport.sh脚本需要)
编译安装htop
unzip htop-3.3.0.zip
cd htop-3.3.0
./autogen.sh
./configure
make
make install
###(服务器端和客户端都安装)
检查安装
##java/ant/htop/R
ant -version
java -version
htop --version
R --version
ant命令编译
vi /etc/profile
添加以下至文件末尾
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-10.oe1.x86_64
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile ###或重登录登录
cd /bhm/benchmarksql/benchmarksql-5.0-x86
ant
###编译成功后会生成build和dist两个目录

替换jdbc驱动
cd /bhm/benchmarksql/benchmarksql-5.0-x86/lib/postgres
mv postgresql-9.3-1102.jdbc41.jar postgresql-9.3-1102.jdbc41.jar.bak
上传对应平台和版本的jdbc驱动至上述路径下
测试明细
测试步骤
数据库端操作
创建测试用户
gsql -r
create user tpcc password 'Panwei@1234';
alter user tpcc sysadmin;

创建测试数据库
create database tpcc dbcompatibility='A' owner tpcc;
\l

设置白名单并生效
gs_guc reload -N all -I all -h "host all tpcc 192.168.115.1/32 md5"

benchmarksql端操作
解压测试工具
# mkdir /bhm
# unzip benchmarksql.zip -d /bhm/
修改配置文件
备份文件props.pg,按照如下内容修改文件;ip地址为数据库业务地址。
# 数据库类型,postgres代表对PG数据库进行测试,支持数据库包括PostgreSQL/EnterpriseDB、DB2、Oracle、SQL Server和MySQL db=postgres # 驱动 driver=org.postgresql.Driver # 修改连接字符串, 包含IP、端口号、数据库名 conn=jdbc:postgresql://192.168.115.100:17700/tpcc?prepareThreshold=1&batchMode=on&fetchsize=10&loggerLevel=off # 设置数据库登录用户和密码 user=tpcc password=Panwei@1234 # 仓库数,每个Warehouse的数据量大小约为76823.04KB warehouses=20 # 用于在数据库中初始化数据的加载进程数量,默认为4 (建议填写CPU核数) loadWorkers=4 # 终端数,即:并发客户端数量, 跟服务端最大work数对应,通常设置为CPU线程总数的2~6倍 terminals=8 # 每个终端(terminal)运行的固定事务数量,当该参数为非0时,runMins参数必须等于零 runTxnsPerTerminal=0 # 要运行指定的分钟,当该参数为非0时,runTxnsPerTerminal必须等于零 runMins=5 # 每分钟总事务数 limitTxnsPerMin=0 # 在4.x兼容模式下运行时,设置为True。设置为false以均匀使用整个配置的数据库。 terminalWarehouseFixed=false # 以下五个值相加之和为100 (45、43、4、4和4的默认百分比与TPC-C规范匹配) # newOrderWeight=45 新订单事务占总事务的45% # paymentWeight=43 支付订单事务占总事务的43% # orderStatusWeight=4 订单状态事务占总事务的4% # deliveryWeight=4 到货日期事务占总事务的4% # stockLevelWeight=4 查看现存货品的事务占总事务的4% newOrderWeight=45 paymentWeight=43 orderStatusWeight=4 deliveryWeight=4 stockLevelWeight=4 # 测试数据生成目录,默认无需修改,默认生成在run目录下面,名字形如my_result_xxxx的文件夹 resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS # 操作系统性能收集脚本,默认无需修改,需要操作系统具备有python2环境 osCollectorScript=./misc/os_collector_linux.py # 操作系统收集操作间隔,默认为1秒 osCollectorInterval=1 # 操作系统收集所对应的主机,如果对本机数据库进行测试,该参数保持注销即可,如果要对远程服务器进行测试,请填写用户名和主机名 //osCollectorSSHAddr=omm@192.168.0.11 # 操作系统中被收集服务器的网卡名称和磁盘名称 osCollectorDevices=net_ens33 blk_sda |


运行runDataBuild.sh生成数据
cd /bhm/benchmarksql/benchmarksql-5.0-x86/run //进入目录
chmod a+x *.sh //授可执行权限
./runDatabaseBuild.sh props.pw //进行测试库创建,数据导入
./runBenchmark.sh props.pw //执行配置好的测试
./runDatabaseDestroy.sh props.pw //清理数据

运行runBenchmark.sh测试数据库
修改runBenchmark.sh脚本中funcs.sh命令的路径为实际当前安装的路径。

运行如下命令进行测试;修改props.pw文件参数terminals=n;
n设置为正整数,即当前并发度。
./runBenchmark.sh props.pw
测试结果截图示例:

vacuum更新统计信息
如果多次运行测试后如出现性能下降,则到数据库上去执行vacuum后再继续测试
$ gsql -d tpcc
vacuum analyze;
清理数据
如果多次运行测试后,也可清理数据,重新初始化数据
./runDatabaseDestroy.sh props.pw





