benchmarksql 配置使用
一个启动命令如下
`cd run
cat > 'my_databus.properties' <<"EOF"
db=oracle
driver=com.huawei.gaussdb.jdbc.Driver
conn=jdbc:gaussdb://10.142.172.16:8000,10.142.172.17:8000,10.139.194.18:8000/skbench?currentSchema=skdatabus&targetServerType=master&socketTimeoutInConnecting=5&connectTimeout=5
user=XXX
password=XXXX
warehouses=100
loadWorkers=100
terminals=500
runMins=10
runTxnsPerTerminal=0
limitTxnsPerMin=0
terminalWarehouseFixed=true
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
EOF
cat > three.sh <<EOF
!/bin/bash
./runDatabaseDestroy.sh my_databus.properties
./runDatabaseBuild.sh my_databus.properties
./runBenchmark.sh my_databus.properties
EOF
chmod +x three.sh
nohup ./three.sh 2>&1 &`
参数解析:
- db=oracle
lib/oracle下面的jar包(全部加载)
标识,确定在run/sql.oracle 下面的sql脚本执行建库语句 - driver=com.huawei.gaussdb.jdbc.Driver
(1) jar包中的调用 - conn=jdbc:gaussdb://10.142.172.16:8000,10.142.172.17:8000,10.139.194.18:8000/skbench?currentSchema=skdatabus&targetServerType=master&socketTimeoutInConnecting=5&connectTimeout=5
(1) 数据库连接串,driver 对应的连接串格式 - user=账号 password=密码
- warehouses=100
(1) 数据量的大小1warehouses 50-100MB
(2) terminals的值 <=10*${warehouses}。如果要测1000,最小本值要100 - loadWorkers=100
(1) 数据库初始化时的benchmarksql线程数,越大越快
(2) ./runDatabaseBuild.sh my_databus.properties 主要在该脚本中显示 - terminals=500
(1) 测试过程中显示的数据串连接数 ,tpm 随着该值上升,到阈值
(2) 容器4C30G ,100连接数应该就满CPU(benchmarksql跑,流量比较大) - runMins=10
(1) 如此terminals 的数值跑10min整
(2) 微测就用10min , 测其他的稳定性等可以120min - runTxnsPerTerminal=0、limitTxnsPerMin=0、terminalWarehouseFixed=true
(1) 未使用,不了解。另一种测试事务导向,本文是min导向 - newOrderWeight=45、paymentWeight=43、orderStatusWeight=4、deliveryWeight=4、stockLevelWeight=4
(1) 各种sql代表的订单类型,这里也是官方的保持不变 - resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
(1) 其他功能,python测os资源使用、rust看图表,都可以不配置 - ./runDatabaseDestroy.sh my_databus.properties
(1) 清空数据库。一般只需要初始化一次,如果不想用上一次的数据就直接清空
(2) 如例子,我的策略是直接复用,还节省时间 - ./runBenchmark.sh my_databus.properties
(1) 这个就是重点,测试Tpm的程序,
(2) Running Average tpmTOTAL:226606.34 运行过程中的tpm平均值
(3) Current tpmTOTAL:14987556 瞬间值?
(4) Measured tpmC(NewOrders) =101848.55 新订单数,权重0.45/1
(5) Measured tpmTOTAL = 226503.11 10min的平均事务数
(6) Transaction Count = 2266559 10min 总计事务数
(7) Start End 开始时间 结束时间 ,时区是+0h 北京时区+8h 所以是11:25:58 11:35:58 - 文件中没有的驱动,选择lib/xxxy ,将jar包放进来,db=xxxy ,就可以引用
准备工作 库 服务 监控
- 申请空数据库和网络
(1) 根据需要的,申请 数据库类型、库名、schema(用户名)、密码、管理库权限、和dba要连接串的格式(怎么配的)
(2) bencharksql所在的ip --》数据库 的网络
(3) 直连方式,使用数据库的driver - 部署benchamarksql(这里是编译好了的,打镜像过程)
(1) 注意基础镜像Dockerfile ‘FROM openjdk:9’,docker load -i 包 。加载这个镜像arm-64 或者x86-64
(2) 镜像名称docker images 和 FROM一样。--》jdk基础镜像
(3) cat build.sh 修改你想要的名字和,推送到的仓库
(4) sh build.sh
(5) 无需端口暴露,无需环境变量,无需持久化存储,如上直接复制执行
(6) 然后 tail -f nohup.out
浙公网安备 33010602011771号