操作系统:openEuler 22.03 x86_64
前提条件:openGauss已经编译并安装成功,gsql可以正常连接数据库
需要的依赖:ant
sudo dnf install ant
连接数据库gsql -r -p 5432
,创建远程连接用户tpcc,并授予SYSADMIN管理员权限。
CREATE USER tpcc PASSWORD 'Tpcc@123';
ALTER USER tpcc SYSADMIN;
create database tpccdb;
这里用户tpcc用于做benchmaksql的测试用户,测试数据库为tpccdb,该用户赋予管理员权限。
BenchMarkSQL使用JDBC驱动包,连续各种数据库,故需要下载openGauss对应版本的JDBC驱动包。
上传openGauss-5.0.0-JDBC.tar.gz到benchmarksql-5.0/lib/postgres/路径,并解压。openGauss的JDBC驱动解压后有两个jar包(postgresql.jar
和opengauss-jdbc-5.0.0.jar
),解压前需要将benchmarksql-5.0/lib/postgres/路径下原有的postgresql.jar
文件删除,然后将解压后的两个jar包复制到benchmarksql-5.0/lib/postgres/路径下。
cd ~/benchmarksql-5.0/lib/postgres/
# 删除原有的postgresql.jar
mv postgresql.jar postgresql.jar.bak
tar -xzvf openGauss-5.0.0-JDBC.tar.gz
cd ~/benchmarksql-5.0
ant
# 输出以下内容
Buildfile: /nas1/home/wieck/benchmarksql.git/build.xml
init:
[mkdir] Created dir: /home/wieck/benchmarksql/build
compile:
[javac] Compiling 11 source files to /home/wieck/benchmarksql/build
dist:
[mkdir] Created dir: /home/wieck/benchmarksql/dist
[jar] Building jar: /home/wieck/benchmarksql/dist/BenchmarkSQL-5.0.jar
BUILD SUCCESSFUL
Total time: 1 second
pip3 install -r requirements.txt
benchmarksql-5.0/run/ 路径下的 Props.*为BenchMarkSQL的测试配置文件,在生成测试数据和执行测试时,BenchMarkSQL都会使用该文件。
可复制已有的props.*模板,修改为可用于openGauss的配置文件。
cd ~/benchmarksql-5.0/run
cp props.pg props.opengauss
nano props.opengauss
写入如下信息,具体配置根据注释修改
db=postgres
driver=org.postgresql.Driver
// 数据库的ip、端口和数据库名
conn=jdbc:postgresql://127.0.0.1:33000/tpccdb
// 前面创建的数据库用户名
user=tpcc
// 数据库密码
password=Tpcc@123
// 数据仓数量
warehouses=100
// 数据创建工作线程数
loadWorkers=25
// 测试过程的连接终端数(并发数)
terminals=100
// 每个终端运行的事务数,该参数与下面的runMins是两种测试策略,所以设置每个终端运行的事务数之后测试时间必须设置为0
runTxnsPerTerminal=0
// 测试时间,如果设置了测试时间,那么runTxnsPerTerminal参数必须为0
runMins=15
//Number of total transactions per minute,0代表无限制
limitTxnsPerMin=0
//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=false
//The following five values must add up to 100
//The default percentages of 45, 43, 4, 4 & 4 match the TPC-C spec
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
// 服务器ssh连接的用户名和地址(Tpcc测试机必须跟数据库服务器设置ssh互信)
osCollectorSSHAddr=shuaikangzhou@127.0.0.1
// 监控的磁盘和网卡,可以设置多个,用空格隔开,网卡命名方式net_xxx,xxx是设备名,磁盘命名方式 blk_xxx,xxx是磁盘名
osCollectorDevices=net_eth4 blk_sdc
-
数据库所在服务器网卡查看方式
ifconfig
这里网卡显示为zttddzk7rq,全拼写成 net_zttddzk7rq
-
数据库所在服务器磁盘查看方式
lsblk
选择数据库数据存储目录所挂载的磁盘,这里显示整个根目录(/)都挂载到sdc磁盘了,所以磁盘名为blk_sdc
cd ~/benchmarksql-5.0/run
./runDatabaseBuild.sh props.opengauss
./runBenchmark.sh props.opengauss
测试完成之后会在当前目录下生成测试结果,位于./my_result_xxxx-xx-xx_xxxx文件夹下
该操作需要安装R语言的环境,生成报告之前需要检查一下R语言环境是否存在。
R --version
如果没有R语言环境需要手动下载源码并编译
- 生成报告
cd benchmarksql-5.0/run
./generateGraphs.sh my\_result\_2023-xx-xx\_xxxxxx
./generateReport.sh my\_result\_2023-xx-xx\_xxxxxx
- 生成图片
- 生成报告
下载my_result_2023-05-04_142051文件夹到桌面,使用浏览器打开文件夹内的report.html文件
该操作会将数据库仓库全部删除,再次测试需要重新创建数据
./runDatabaseDestroy.sh props.opengauss
默认配置只能本机连接数据库,为了不影响性能,TPCC客户端尽量不要跟数据库在同一台机器上,此时需要修改数据库的配置以便局域网内的其他设备可以连接。
找到数据库的数据目录
-
编辑
pg_hba.conf
配置文件添加连接配置
host all all 172.19.0.0/16 sha256
-
编辑
postgresql.conf
文件编辑配置文件,将:
listen_addresses = 'localhost' # 或默认只监听127.0.0.1
修改为:
listen_addresses = '*' # 允许监听所有网络接口(包括局域网IP)
也可以指定具体的局域网 IP(如
172.19.0.209
),但*
更灵活。 -
重启数据库