使用TPC-DS对GBase 8a进行性能测试
什么是TPC-DS
TPC-DS是一个面向决策支持系统(decision support system)的包含多维度常规应用模型的决策支持基准,包括查询(queries)与数据维护。此基准对被测系统(System Under Test’s,
SUT)在决策支持系统层面上的表现进行的评估具有代表性。
TPC-DS采用星型、雪花型等多维数据模式。它包含7张事实表,17张纬度表平均每张表含有18列。其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部分以及OLAP。这个测试集包含对大数据集的统计、报表生成、联机查询、数据挖掘等复杂应用,测试用的数据和值是有倾斜的,与真实数据一致。可以说TPC-DS是与真实场景非常接近的一个测试集,也是难度较大的一个测试集。
关于TPC-DS的评价指标,可以查看该链接:
https://zhuanlan.zhihu.com/p/331849301
如何生成TPC-DS的数据
通过官网等途径拿到TPC-DS包后,会有一个dsdgen可执行文件,该文件用于生成随机数据。需要注意的是,不同版本的TPC-DS可能会适应不同版本的操作系统,所以可能会遇到无法执行该文件的情况,需要更换TPC-DS版本。
以生成300GB数据为例,通过以下命令来进行生成。
./dsdgen -dir /opt/data -SCALE 300
-dir后面指向的是数据生成的路径。
生成数据的时间随性能而定,生成300GB的数据大概需要六七个小时。
将生成的数据导入GBase 8a数据库
前提需要安装好GBase 8a数据库,安装步骤可以参考以下链接:
https://blog.csdn.net/weixin_43834971/article/details/121554720?spm=1001.2014.3001.5501
使用gccli命令,执行TPC-DS工具包下的建表脚本即可再数据库中创建适用于测试的数据表。
gccli -uroot -f -vvv </opt/create_table_tpcds.sql
>> out.log
创建表成功后,即可将数据导入数据库中,可以将24个表的导入语句全部写到一个sql脚本中再执行。
数据导入语句,示例如下:
load data infile
'file://192.168.2.180/opt/tpcds/sqldata/catalog_page.dat' into table
tpcds.catalog_page fields terminated by '|';
对24个表分别执行导入语句后,数据就导入成功了,接下来就可以进行TPC-DS测试了
TPC-DS测试
要进行TPC-DS测试,需要使用.sh脚本,批量执行sql语句来完成。
通过.sh脚本,记录查询语句的时间,结果等。通过for循环的方式,执行TPC-DS工具包中的99条查询语句即可。
需要注意的是,进行TPC-DS测试,可能会需要配置SSH互信,以便测试节点能无需密码和确认访问其他节点。
配置SSH互信
配置ssh config,将测试节点的StrictHostKeyChecking
no 修改为 StrictHostKeyChecking ask
vim /etc/ssh/ssh_config
在master节点的/etc/ssh/sshd_config文件中去掉注释
vim /etc/ssh/sshd_config
RSAAuthentication yes #开启私钥验证
PubkeyAuthentication yes #开启公钥验证
之后所有节点使用DBA用户生成公钥、私钥。
ssh-keygen -t rsa -P ''
一路回车即可。
生成之后,将每个节点的id_rsa.pub文件的内容,都追加到测试节点的authorized_keys文件中。
这两个文件,在/home/gbase/.ssh 目录下。
之后重启sshd.service即可
之后验证ssh无密登录。 输入ssh
nodeip。
配置SSH完成
Nmon监控
Nmon是一个可以监控服务器资源的工具,可以在TPC-DS测试期间监控服务器性能。
使用yum install nmon来进行安装。
安装后,使用
nmon -s8 -c300 -f -m /opt/nmondata
即可开启监控
-s代表每几秒监控一次
-c代表监控多少次
-f代表文件名中包含时间
-m指向存放监控文件的路径。
将生成的nmon监控文件,导入nmon工具的excel文件或者jar文件中,即可进行图形化分析。
如果想深入了解GBase 8a或有其他问题,欢迎在GBase 8a社区上寻找答案
http://www.gbase8a.com/




