yuworld

导航

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 &`

参数解析:

  1. db=oracle
    lib/oracle下面的jar包(全部加载)
    标识,确定在run/sql.oracle 下面的sql脚本执行建库语句
  2. driver=com.huawei.gaussdb.jdbc.Driver
    (1) jar包中的调用
  3. 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 对应的连接串格式
  4. user=账号 password=密码
  5. warehouses=100
    (1) 数据量的大小1warehouses 50-100MB
    (2) terminals的值 <=10*${warehouses}。如果要测1000,最小本值要100
  6. loadWorkers=100
    (1) 数据库初始化时的benchmarksql线程数,越大越快
    (2) ./runDatabaseBuild.sh my_databus.properties 主要在该脚本中显示
  7. terminals=500
    (1) 测试过程中显示的数据串连接数 ,tpm 随着该值上升,到阈值
    (2) 容器4C30G ,100连接数应该就满CPU(benchmarksql跑,流量比较大)
  8. runMins=10
    (1) 如此terminals 的数值跑10min整
    (2) 微测就用10min , 测其他的稳定性等可以120min
  9. runTxnsPerTerminal=0、limitTxnsPerMin=0、terminalWarehouseFixed=true
    (1) 未使用,不了解。另一种测试事务导向,本文是min导向
  10. newOrderWeight=45、paymentWeight=43、orderStatusWeight=4、deliveryWeight=4、stockLevelWeight=4
    (1) 各种sql代表的订单类型,这里也是官方的保持不变
  11. resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
    (1) 其他功能,python测os资源使用、rust看图表,都可以不配置
  12. ./runDatabaseDestroy.sh my_databus.properties
    (1) 清空数据库。一般只需要初始化一次,如果不想用上一次的数据就直接清空
    (2) 如例子,我的策略是直接复用,还节省时间
  13. ./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
  14. 文件中没有的驱动,选择lib/xxxy ,将jar包放进来,db=xxxy ,就可以引用

准备工作 库 服务 监控

  1. 申请空数据库和网络
    (1) 根据需要的,申请 数据库类型、库名、schema(用户名)、密码、管理库权限、和dba要连接串的格式(怎么配的)
    (2) bencharksql所在的ip --》数据库 的网络
    (3) 直连方式,使用数据库的driver
  2. 部署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

posted on 2026-02-06 17:52  孤影yu  阅读(0)  评论(0)    收藏  举报