请联系优炫技术人员获取jdbc wrapper版本的benchmark工具。
以1个master节点,3个cn节点和3个worker节点为例。
表?5.1.?服务器及节点分布
搭建环境 | IP端口 | 节点功能 | 是否需要同步元数据,使其成为cn |
---|---|---|---|
master | 20.0.0.1:10001 | master,存储完整数据及元数据 | ? |
worker1 | 20.0.0.2:10001 | worker,存储参照表和每个分片表其中一个分片 | ? |
worker2 | 20.0.0.3:10001 | worker,存储参照表和每个分片表其中一个分片 | ? |
worker3 | 20.0.0.4:10001 | worker,存储参照表和每个分片表其中一个分片 | ? |
cn1 | 20.0.0.2:10002 | ? | 是 |
cn2 | 20.0.0.3:10002 | ? | 是 |
cn3 | 20.0.0.4:10002 | ? | 是 |
Benchmark工具 | 20.0.0.1 | 跑benchmark工具 | ? |
数据分布:1000仓库100GB数据,3个分片,每个worker节点1个分片,搭建详情请参考《优炫数据库uxmpp使用手册 V2.1》(加入网络链接)。
master节点信息及tpcc相关参数配置文件:uxdb.pg
db=postgres //数据库类型,不需要更改 driver=com.uxsino.uxdb.Driver //驱动,不需要更改 conn=jdbc:uxdb://20.0.0.1:10001/uxdb //数据库连接字符串 user=uxdb //数据库用户名 password=123456 //如上用户密码 warehouses=1000 //仓库数量,每个warehouse大小大概是100MB,建议将数据库的大小设置为服务器物理内存的2-5倍 loadWorkers=100 //用于在数据库中初始化数据的加载进程数量 terminals=15 //终端数,即并发客户端数量,通常设置为CPU线程总数的2~6倍 runTxnsPerTerminal=0//每个终端(terminal)运行的固定事务数量,该参数配置为非0值时,下面的runMins参数必须设置为0 runMins=1 //要测试的整体时间,单位为分钟该值设置为非0值时,runTxnsPerTerminal 参数必须设置为0。 limitTxnsPerMin=0 // 每分钟事务总数限制 //终端和仓库的绑定模式,设置为true时可以运行4.x兼容模式,意思为每个终端都有一个固定的仓库。设置为false时可以均匀的使用数据库整体配置。 TPCC规定每个终端都必须有一个绑定的仓库,所以一般使用默认值true。 terminalWarehouseFixed=true //下面五个值的总和必须等于100,默认值为:45, 43, 4, 4 & 4 ,与TPC-C测试定义的比例一致,实际操作过程中,可以调整比重来适应各种场景。 newOrderWeight=45 paymentWeight=43 orderStatusWeight=4 deliveryWeight=4 stockLevelWeight=4 resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS //测试数据生成目录,默认无需修改,默认生成在run目录下面,名字形如my_result_xxxx的文件夹。 osCollectorScript=./misc/os_collector_linux.py //操作系统性能收集脚本,默认无需修改,需要操作系统具备有python环境 osCollectorInterval=1 //操作系统收集操作间隔,默认为1秒 //操作系统收集所对应的主机,如果对本机数据库进行测试,该参数保持注销即可,如果要对远程服务器进行测试,请填写用户名和主机名。 //osCollectorSSHAddr=user@dbhost //osCollectorDevices=net_eth0 blk_sda //操作系统中被收集服务器的网卡名称和磁盘名称
cn/worker节点配置文件:dbfarm.pg
mastercn= jdbc:uxdb://20.0.0.1:10001/uxdb #cn1=jdbc:uxdb://20.0.0.2:10002/uxdb #cn2=jdbc:uxdb://20.0.0.3:10002/uxdb #cn3=jdbc:uxdb://20.0.0.4:10002/uxdb isLazyInitialize=true //是否开启懒加载:是 pollingMode=false //是否轮询:否 useDataSource=false //是否使用连接池:否 isdirectWorker=true //是否直连worker:是 availableWorkerList=worker1,worker2,worker3 //可用worker列表 worker1=jdbc:uxdb://20.0.0.2:10001/uxdb worker2=jdbc:uxdb://20.0.0.3:10001/uxdb worker3=jdbc:uxdb://20.0.0.4:10001/uxdb
cn节点名称必须以cn开头,worker节点必须以worker开头。
isdirectWorker=false时需要配置cn节点, isdirectWorker=true时需要配置worker节点信息。
availableWorkerList=worker1,worker2,worker3,可用worker列表:分割worker信息的key值(isdirectWorker=true时需要配置)。
jdbc包替换,在原有工具lib目录下加入jdbc-wrapper.jar包
例如:cd /home/uxdb/software/benchmarksql-5.0-mpp/lib
获取jdbc wrapper版本benchmark工具,确保benchmark工具dist目录下的benchmarksql-5.0.jar是jdbc wrapper版本的工具包。
例如:cd /home/uxdb/software/benchmarksql-5.0-mpp/dist
进入benchmarksql工具下的run目录。
例如:cd /home/uxdb/software/benchmarksql-5.0-mpp/run
查看runBenchmark.sh启动类是否是TPCC,以及查看dbfarm.pg配置文件是否配置正确。
配置正确,执行./runBenchmark.sh uxdb.pg,结果如下: