Greenplum 6 TPC-H测试实践

  1. 测试环境

鲲鹏920(64core、64GB),三台服务器

两块本地盘(dd工具测试读速度约为1GB/s,dd测试参数bs=16384,count=1000000),每个盘上启动8个segment实例

Tpch数据量200GB

操作系统:kylin v10

  1. 测试考虑影响性能的因素
  1. Segment实例个数选择

Segment实例基本的出发点是在服务器硬件(主要是内存)允许的情况下,尽量越多越好,增加segment实例的个数可以对最终性能带来直接的提升,但随着segment实例个数的增加可能会导致第18各sql报内存不足错误。和statement_mem参数设置多大有关,本次经多次尝试,在statement_mem设置为2GB的情况下,单机segment实例最多启动16个。实例设置过多性能反而下降,尝试增加statement_mem为3GB,跑第18条SQL的时候报内存不足。在200GB的测试数据量,3太服务器的测试条件下,单机segment个数可以从内存的1/4开始,也就是16个。虽然鲲鹏920有64个cpu线程,但感觉单核的性能是x86的1/4,所以根据x86服务器cpu和内存1:4的经验值,相当于16c,64GB的配置。这里的经验就是有多少cpu core就设置多少segment实例。

  1. 大表是否分区

实例测试Lineitem分区比不分区性能要好

  1. Shared buffer参数设置

本次测试shared buffer设置为512MB,提高到1GB,对性能影响不大

  1. Statement_mem参数设置

提升该参数可以对性能有正面影响,但设置过高后会影响segment实例的个数,并且设置过大后,对性能提升作用不大,感觉还是以尽可能的多segment实例为首要考虑因素

  1. 索引是否创建

对lineitem(200GB测试数据的情况下有大约12亿条记录)创建索引,对SQL 1性能提升不大,根据SQL 1的查询条件,实例需要扫描大约11亿的记录,所以不会用索引。

  1. Maintance_work_mem参数设置

对该参数设置过大的值(大于1GB)对性能影响不大。

  1. Wal_buffer参数

对该参数设置过大的值(大于1GB)对性能影响不大。

  1. 操作系统参数(磁盘挂载参数、磁盘调度算法、sysctl.conf参数、磁盘blockdev设置)    --本节参数不讨论,参考GP官方文档设置
  2. 表存储模型

本次测试使用列存模型,zlib压缩,压缩因子5。

  1. 测试感想

第二节讲到的各种参数应该和测试的总数据量、测试物理服务器个数(3个服务器和5个服务器,每个服务器上启动的segment个数不一样)、服务器内存大小(64GB和256GB启动的segment实例不一样)这三个因素相关,这三个因素进而决定segment实例的个数,我认为segment实例的个数最终决定tpc-h测试的最终效果。一条原则就是,在内存和磁盘带宽允许的条件下,尽量启动最多的segment。Segment启动的个数还受限于本机磁盘的I/O带宽,尽量使用多块本地盘并行来分散I/O压力。初始segment的启动个数可以根据:内存:CPU:segment=4:1:1作为基准,逐步调试statement_mem参数,求一个性能最优的平衡

  1. 在第一节的测试条件下的测试结果

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值