1 测试主体

本次测试的主体有3个,分别为:

  • GreenPlum集群,下文简称为GP
  • Postgres-XC集群,下文简称为XC
  • Postgresql单数据库实例,下文简称为pgsql

  GP和XC都选用目前在互联网上可以下载到的最新版本。不同集群所基于的postgresql数据库版本不同,并且,postgis的版本也不相同。版本说明见下表:

测试主体

版本

Postgresql版本

Postgis版本

GP

4.3.8.2

8.2.15

2.0

XC

1.0.4

9.1.13

2.1

pgsql

9.1.13

9.1.13

2.1

  所有的环境均搭建在7层机房6台(编号1-6)1U的服务器上,各台服务器的配置如下:

参数项

配置

CPU

32核

内存

64G

磁盘

4块7200转SATA,未做RAID

网络

4块千兆网卡,1和2作MODE=2的绑定,3和4各连一个交换机,各组一个局域网

  GP集群采用1个master(运行在编号1的服务器/dev/sda上),6个segment host(对应编号1-6的服务器)的组织方式,每个segment host启动3个实例,分别位于不同的物理磁盘上(/dev/sdb 、/dev/sdc 、/dev/sdd)。

  XC集群采用1个gtm(运行在编号1的服务器上),1个gtm_standy(运行在编号1的服务器上),4个gtm_proxy(对应编号3-6的服务器),4个coordinator(对应编号3-6的服务器),4个datanode(对应编号3-6的服务器)的组织方式。coordinator运行于/dev/sda,datanode运行于/dev/sdb。

  Pgsql采用XC集群中编号3服务器上运行的datanode。

2测试目标

测试并对比三个测试主体的入库、查询性能。

3测试方法

本次测试使用了三个测试工具:

  1. 使用pgbench测试不同压力条件下,复杂面状要素的入库效率
  2. 使用org2ogr测试不同客户端连接数条件下,fgdb文件的入库效率。fgdb有要素1178840条,820M。
  3. 使用tpc-H测试固定大小非空间数据的入库效率
  4. 使用tpc-H测试复杂查询的查询效率

4测试结果

4.1 pgbench测试结果

测试主体

连接数

3分钟插入记录数

每秒事务数

XC

1

7581

42

4

15535

86

12

27371

152

24

43422

241

2*24

70588

195

4*24

84000

118

GP

1

1050

6

4

2757

15

12

3740

20

24

4040

22

48

4039

22

pgsql

1

13140

73

4

21537

119

12

20944

116

24

21366

117

4.2 ogr2ogr测试结果

测试主体

org2ogr进程数

总耗时(unit=m)

XC

2

34

4

34

8

32

16

32

32

35

40

36

40+32+32

50

40+30+30+30

61

pgsql

2

25

4

25

8

23

16

23

32

35

40

55

GP

4

57

8

61

20

120

40

150

4.3 tpc-H入库测试结果

使用tpc-H将8张总大小为200G,总记录数约1.7亿的数据入库。耗时情况如下:

 

XC(unit=m)

GP(m)

Pgsql(m)

耗时

8.05

6.8

21.9

4.4 tpc-H 查询测试结果

查询SQL编号

XC(unit=s)

GP(s)

pgsql(s)

1

timeout

14

timeout

3

123

18

57

4

144

1

17

6

3

1

12

7

228

18

64

8

110

5

39

10

timeout

1

76

11

27

1

22

12

22

1

38

14

timeout

1

13

15

1

1

28

16

21

5

37

17

23

51

1

18

18

5

191

19

timeout

6

40

20

3

1

timeout

5测试结论

  1. 可能是postgis版本较低的原因,GP处理空间数据的效率不高。正如4.1与4.2中所反映,入矢量数据效率较低。XC处理空间数据的性能要优于GP。
  1. 对于小事务的扩展能力,XC的性能最好。这得宜于它的架构支持多个coordinator,使得将客户连接负载均衡到不同的协调器中;
  2. GP作为决策支持型数据库,对于大数据量的查询分析,效率很高;
  3. 如果事务数非常少(以本例来看,在小于20-30的情况下),集群的性能不如单机的性能;

Postgresql集群解决方案测试报告的更多相关文章

  1. 云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator

    使用 PGO 在 Kubernetes 上运行 Cloud Native PostgreSQL:来自 Crunchy Data 的 Postgres Operator! Cloud Native Po ...

  2. 分布式 PostgreSQL 集群(Citus)官方教程 - 迁移现有应用程序

    将现有应用程序迁移到 Citus 有时需要调整 schema 和查询以获得最佳性能. Citus 扩展了 PostgreSQL 的分布式功能,但它不是扩展所有工作负载的直接替代品.高性能 Citus ...

  3. 分布式 PostgreSQL 集群(Citus),分布式表中的分布列选择最佳实践

    确定应用程序类型 在 Citus 集群上运行高效查询要求数据在机器之间正确分布.这因应用程序类型及其查询模式而异. 大致上有两种应用程序在 Citus 上运行良好.数据建模的第一步是确定哪些应用程序类 ...

  4. postgresql集群方案参考答案

    PostgreSQL配置Streaming Replication集群 http://www.cnblogs.com/marsprj/archive/2013/03/04/2943373.html p ...

  5. 高可用性、负载均衡的mysql集群解决方案

    高可用性.负载均衡的mysql集群解决方案 一.mysql的市场占有率 二.mysql为什么受到如此的欢迎 三.mysql数据库系统的优缺点 四.网络服务器的需求 五.什么是mysql的集群 六.什么 ...

  6. Terrocotta - 基于JVM的Java应用集群解决方案

    前言 越来越多的企业关键应用都必须采用集群技术,实现负载均衡(Load Balancing).容错(Fault Tolerance)和灾难恢复(Failover).以达到系统可用性(High Avai ...

  7. zookeeper、solrcloud、rediscluster集群解决方案

        集群解决方案 课程目标 目标1:说出什么是集群以及与分布式的区别 目标2:能够搭建Zookeeper集群 目标3:能够搭建SolrCloud集群 目标4:能够搭建RedisCluster集群 ...

  8. t-io 集群解决方案以及源码解析

    t-io 集群解决方案以及源码解析 0x01 概要说明 本博客是基于老谭t-io showcase中的tio-websocket-showcase 示例来实现集群.看showcase 入门还是挺容易的 ...

  9. 基于pgpool搭建postgresql集群

    postgresql集群搭建 基于pgpool中间件实现postgresql一主多从集群部署,这里用两台服务器作一主一从示例 虚拟机名 IP 主从划分 THApps 192.168.1.31 主节点 ...

随机推荐

  1. 项目Alpha冲刺——集合

    作业描述 课程: 软件工程1916|W(福州大学) 作业要求: 项目Alpha冲刺(团队) 团队名称: 火鸡堂 作业目标: 完成项目Alpha冲刺 团队信息 队名:火鸡堂 队员学号 队员姓名 博客地址 ...

  2. datediff(date1,date2) 函数的使用

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在MySQL中可以使用DATEDIFF()函数计算两个日期之间的天数 语法: datediff(date1,date2) 注:date1和date ...

  3. 日期对象|Date构造函数|

    var date = new Date(); console.log(date); //Date {Wed Dec 10 2014 15:59:24 GMT+0800} date.getDay() d ...

  4. async-validator 表单验证注意事项

    1. this.$refs[formName].validate()里面的内容不执行 解决问题出处:https://segmentfault.com/q/1010000009679079 问题描述:1 ...

  5. 35 Top Open Source Companies

    https://www.datamation.com/open-source/35-top-open-source-companies-1.html If you think of open sour ...

  6. Markdwon入门2

    插入表情 这里是指广义的表情包,包括表情.物体.动物等. :+1: :smile: :s :scream: :kissing_heart: :yum: :cry: :blush: :frog: :co ...

  7. Tomcat启动问题:严重[main] org.apache.catalina.core.AprLifecycleListener.init An incompatible version...

    今天观察tomcat启动日志,有一些以前没注意到的信息: 严重 [main] org.apache.catalina.core.AprLifecycleListener.init An incompa ...

  8. Ajax.BeginForm 不执行OnSuccess

    今天用MVC做了一个表单提交,使用Ajax.BeginForm ,但是碰到一个奇怪的问题OnSuccess回调函数不执行.后来经过多次尝试才发现要引用两个东西 1.<script src=&qu ...

  9. shell脚本编程基础知识点

    整数比较: -eq:测试两个整数是否相等:相等为真,不等为假 -ne:测试两个整数是否不等:不等为真,相等为假 -gt:测试一个数是否大于另一个数:大于为真,否则为假 -lt:测试一个数是否小于另一个 ...

  10. 「PKUSC2018」PKUSC

    传送门 Solution  考虑求每个点的贡献 等价于一个以OA长为半径的圆心为原点的圆在多边形内的弧对应的角度/\(2\pi\) 求弧度可以利用三角剖分 在原点的点要特判,采用射线法就可以了 Cod ...