本文旨在介绍对openLooKeng进行多分片特性进行tpc-ds99语句性能测试的方法,使用的工具为apachejmeter,使用的数据源为gaussDB200。
1. gaussDB连接使用方法指导
1.1 数据库连接
1. 以操作系统用户omm登录GaussDB200集群的任一主机
2. 执行“gs_om-t status --detail”命令查询集群各实例情况
3. 确认CN的端口号的方法,执行”cat /srv/BigData/mppdb/data1/coordinator/postgresql.conf | grep port”,结果如下图所示:
ps:port=25308为CN的端口号
1.1.1 本地连接数据库的方法:
1、使用用户omm登录集群主机
2、执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile
3、登录命令行客户端:gsql -d postgres-p25308
1.1.2 远程连接数据库的方法:
默认情况下gaussDB200只能在集群主机上通过自带的客户端登录数据库,通过配置IP规则后方能从远程登录数据库。
1. 从浏览器登录(URL一般为http://serverIp:8080/web),在manager上添加数据库用户testuser,执行过程如下图:
2. 允许用户testuser从xx.xx.xx.xx(openLooKeng服务器serverip)访问gaussDB
以omm登录集群主机执行以下shell命令:
gs_guc set -Zcoordinator -N all -I all -h "host all testuser xx.xx.xx.xx/16sha256" ---假设ip掩码取16位
可通过cat/srv/BigData/mppdb/data1/coordinator/pg_hba.conf | grep testuser检查是否添加成功
对于openLooKeng服务器为集群且IP网段不同的场景,由于每个节点都有可能需要连接gaussDBserver,那么需要执行者对每个网段的server都按上述方法添加到列表。
重启gaussDB
1.1.3 如需要重启GaussDB,请按以下步骤执行:
1、以omm账户登录集群主机执行以下命令:
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile
cm_ctl stop && cm_ctl start
1.2 gaussDB作为数据源接入openLooKeng:
在openLooKeng服务器的vietc/catalogs/gaussdb.properties内容如下:
connector.name=opengauss
connection-url=jdbc:postgresql://xx.xx.xx.xx:portId/postgres?useSSL=false
connection-user=testuser
connection-password=******
use-connection-pool=true
ps:设置use-connection-pool非常重要,由于我们所使用的环境从openLooKengserver建立到gaussDB的jdbcconnection耗时相对很长,不使用连接池会导致query的相当大比例的时间消耗在频繁建立connection这环节上,进而导致多分片的效果打折扣。
2. 使用JMeter执行tpc-ds测试
2.1 生成tpcds测试数据的方法:
1. 从官网下载tpc-ds源码(http://tpc.org/tpc_documents_current_versions/current_specifications5.asp)
2. 将tpcds-kit-master工具上传至任一linux服务器
3. 进入tools目录,然后执行make
4. 生成tpcds测试数据,例:生成1G数据(-scale参数表示数据规模,单位为GB)并写入/srv/tpcds-data0
a. mkdir -p /srv/tpcds-data0
b. ./dsdgen -dir /srv/tpcds-data0/ -scale 1
5. 对生成数据做格式加工处理
在/srv/tpcds-data0创建handled目录,并把应用下面shell语句放入脚本执行数据格式加工处理
6. 拷贝handled目录内已处理过的数据到安装了JMETER的主机上
2.2 测试数据导入GaussDB数据库
推荐使用通过DataStudio工具(请从以下网址下载:https://support.huawei.com/)导入数据:
1、登录DataStudio并连接GaussDB,界面如下:
“主机”一栏请填写GaussBserver的真实ip
“数据库”一栏请根据实际数据库名填写
2、创建tpc-dsschema及tpc-ds表:
导入数据前先创表(createschematpcds; 然后拷贝tpcds工具的/tools/tpcds.sql里的语句完成创表工作)
3、将tpcds-kit生成的测试数据文件导入GaussDB,如下图:
2.3 JMeter测试指引
2.3.1 JMeter启动内存设置
修改JMeter启动内存避免测试过程发生OOM:
apache-jmeter-5.2.1\bin\
2.3.2 创建JMeter测试工程
测试工程参考模板:
(附件不传不了,文件内容见文章末尾, jmeter-test.jmx)
将模板放入jmeter的projects目录下,从JMeterUI上选择打开该文件
2.3.3 配置openLooKeng连接信息
指定openLooKeng的URL(需包含catalogName、schemaName),如:
jdbc:lk://xx.xx.xx.xx:8096/gaussdb/testuser
jdbc driverclass填:io.hetu.core.jdbc.OpenLooKengDriver
前置条件是已经把hetu-jdbc-XXX-SNAPSHOT.jar包放入对应的目录(见下图)
设置用例文件,如下图:
模板参考(在每行用例的第一列加”//”,测试时可跳过该用例):
设置每个条sql语句的循环次数:
经过以上操作,现在可以开始启动测试咯
测试进行的同时可以查收已完成的语句的执行结果,如下图所示(根据需要可通过“SaveTable Data”可以保存测试结果,方便后期分析):
ps:在linux服务器上编辑的文档,条件有限,格式将就着看吧
以下为jmeter-test.jmx的内容
..\projects\queries\hana-tpcds-perf-throught-onequery.csv
D:\work\JDBCDRIVER,D:\work\JDBCDRIVER\hetu-jdbc-1.3.0-SNAPSHOT.jar
"${Skip Execution}" != "//" && "${Skip Execution}" != "*"
true
true
true