测试Vertica性能
软件:Vertica 6.0.0-4OS: Red Hat EnterpriseLinux Server release 6.0(x86-64)Filesystem: ext4 三台服务器参数:cpu :4P*8CIntel(R) Xeon(R) CPU E7- 8837 @ 2.67GHz4P*8CIntel(R) Xeon(R) CPU E7- 4820
软件:
Vertica 6.0.0-4
OS: Red Hat EnterpriseLinux Server release 6.0(x86-64)
Filesystem: ext4
三台服务器参数:
cpu :
4P*8CIntel(R) Xeon(R) CPU E7- 8837 @ 2.67GHz
4P*8CIntel(R) Xeon(R) CPU E7- 4820 @ 2.00GHz
4P*8CIntel(R) Xeon(R) CPU E7- 4820 @ 2.00GHz
Memory:
128GB
128GB
128GB
Disk:
IBM ServeRAID M5015 Rev: 2.13 600GB
IBM ServeRAID M5015 Rev: 2.13 600GB
IBM ServeRAID M5015 Rev: 2.13 600GB
网卡:
100Mb/s
100Mb/s
100Mb/s
测试Vertica三节点集群测试,与两节点集群进行比较如下:
步骤 | 测试项 | Vertica (两节点集群) | Oracle(单节点) | Vertica (三节点集群百兆) | Vertica (三节点集群千兆) |
1 | 数据加载(31亿,两节点情况下单点加载,三节点情况下是每个节点并行4个进程加载,Oracle是单节点光纤加载) | 5小时13分26秒 | 4小时22分50秒 | 2小时12分31秒 | 17分03秒 |
2 | 两表关联非分布键(31亿+21万) | 6小时22分35秒 | 11小时19分44秒 | 1小时58分30秒 | 2小时3分6秒 |
3 | 两表关联分布键(31亿+3千万) | 2小时56分35秒 | 6小时13分48秒 | 2小时31分17秒 | |
4 | 两表关联汇总非分布键(31亿+174) | 649s | 2小时16分10秒 | 729s | 386s |
5 | 四表关联非分布键(3千万+16万+16万+5万) | 136s | 96s | 99s | |
6 | 四表关联非分布键(3千万+4+7+174) | 202s | 44s | 46s | |
7 | 单表汇总(6千万) | 109s | 113s | ||
8 | 四表关联非分布键(3千万+16万+2百万+5万) | 184s | 522s | 357s | |
总计耗时 | 53527s | 64724s | 38989s | 18487s |
测试主要步骤比对说明:
1、 数据加载:
3节点的Vertica集群在加载过程中,是多个节点并行加载,并且在每个节点上开启了4进程并行加载,改造成千兆网络后,网络传输的瓶颈解决,效率大大提升;两节点的Vertica集群是单节点加载,并且通过百兆网络传输分布数据,效率不如oracle单机通过光纤连接磁阵直接加载。
2、 两表关联非分布键(31亿+21万)
3节点的Vertica集群,将临时表建立成temporary方式,并且ksafe设置为0,不需要进行节点间数据备份,从而避免了数据的重分布,所以效率提升
3、 两表关联分布键(31亿+3千万)
3节点的Vertica集群,在百兆网络情况下由于目标表被设置为ksafe 1,需要进行数据备份,300G的数据需要通过百兆带宽进行传输重分布,所以导致效率大幅度下降,改造成千兆网络后,问题解决
Vertica集群(3节点)主要参数设置
Ksafe:1
maxmemorysize :Special: 95%
executionparallelism : AUTO
Runtimeprioritythreshold : 2
plannedconcurrency : 4
结果分析:
文件加载入库
Vertica文件加载本质都是通过copy实现,可以通过多节点并行加载,以及在每台节点上开启多进程提升效率。通过将带宽从100Mb/s提升为1000Mb/s 后,加载速度提升一个数量级。
数据分布
插入目标表的过程中,需要检查目标表和源表的分布键字段类型,如果存在字段类型不一致或者字段长度不同(主要指CHAR),都会导致数据重分布,极大影响性能。
多表关联
Vertica多表关联的关联字段,如果设置成为orderby字段,则在关联匹配的过程中使用merge join方式,比默认的hash join方式效率提升很多。
单表汇总
vertica单表汇总是在各自的节点上运算,然后再把结果进行汇总,所以效率比单台节点的oracle高。
建表优化
vertica 提供DBD工具对建表语句、字段压缩方式、分布键、order字段进行优化,但是经过实际使用,分布键的设置和order字段的优化建议往往不准,还需要根据实际的关联语句以及经验进行设置。
数据压缩
vertica数据压缩是根据列式压缩,如果表中存在重复值的字段较多,则压缩比高,比如按地市、微区域等列举小区名称的表,压缩比能够达到1:5,但是对于用户流量信息,由于用户号码和流量的值很少出现重复,所以压缩比很低。压缩比还受到ksafe的影响,ksafe设置为1的情况下,数据会复制一份,容量增加一倍。
更多推荐
所有评论(0)