Postgresql集群解决方案测试报告
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测试方法
本次测试使用了三个测试工具:
- 使用pgbench测试不同压力条件下,复杂面状要素的入库效率
- 使用org2ogr测试不同客户端连接数条件下,fgdb文件的入库效率。fgdb有要素1178840条,820M。
- 使用tpc-H测试固定大小非空间数据的入库效率
- 使用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测试结论
- 可能是postgis版本较低的原因,GP处理空间数据的效率不高。正如4.1与4.2中所反映,入矢量数据效率较低。XC处理空间数据的性能要优于GP。
- 对于小事务的扩展能力,XC的性能最好。这得宜于它的架构支持多个coordinator,使得将客户连接负载均衡到不同的协调器中;
- GP作为决策支持型数据库,对于大数据量的查询分析,效率很高;
- 如果事务数非常少(以本例来看,在小于20-30的情况下),集群的性能不如单机的性能;
Postgresql集群解决方案测试报告的更多相关文章
- 云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator
使用 PGO 在 Kubernetes 上运行 Cloud Native PostgreSQL:来自 Crunchy Data 的 Postgres Operator! Cloud Native Po ...
- 分布式 PostgreSQL 集群(Citus)官方教程 - 迁移现有应用程序
将现有应用程序迁移到 Citus 有时需要调整 schema 和查询以获得最佳性能. Citus 扩展了 PostgreSQL 的分布式功能,但它不是扩展所有工作负载的直接替代品.高性能 Citus ...
- 分布式 PostgreSQL 集群(Citus),分布式表中的分布列选择最佳实践
确定应用程序类型 在 Citus 集群上运行高效查询要求数据在机器之间正确分布.这因应用程序类型及其查询模式而异. 大致上有两种应用程序在 Citus 上运行良好.数据建模的第一步是确定哪些应用程序类 ...
- postgresql集群方案参考答案
PostgreSQL配置Streaming Replication集群 http://www.cnblogs.com/marsprj/archive/2013/03/04/2943373.html p ...
- 高可用性、负载均衡的mysql集群解决方案
高可用性.负载均衡的mysql集群解决方案 一.mysql的市场占有率 二.mysql为什么受到如此的欢迎 三.mysql数据库系统的优缺点 四.网络服务器的需求 五.什么是mysql的集群 六.什么 ...
- Terrocotta - 基于JVM的Java应用集群解决方案
前言 越来越多的企业关键应用都必须采用集群技术,实现负载均衡(Load Balancing).容错(Fault Tolerance)和灾难恢复(Failover).以达到系统可用性(High Avai ...
- zookeeper、solrcloud、rediscluster集群解决方案
集群解决方案 课程目标 目标1:说出什么是集群以及与分布式的区别 目标2:能够搭建Zookeeper集群 目标3:能够搭建SolrCloud集群 目标4:能够搭建RedisCluster集群 ...
- t-io 集群解决方案以及源码解析
t-io 集群解决方案以及源码解析 0x01 概要说明 本博客是基于老谭t-io showcase中的tio-websocket-showcase 示例来实现集群.看showcase 入门还是挺容易的 ...
- 基于pgpool搭建postgresql集群
postgresql集群搭建 基于pgpool中间件实现postgresql一主多从集群部署,这里用两台服务器作一主一从示例 虚拟机名 IP 主从划分 THApps 192.168.1.31 主节点 ...
随机推荐
- ES6新特性之 let 、const
在 ES6之前,ES5中js只有全局作用域和函数作用域,作用域是一个独立的地盘,让变量不外泄出去,但是上例中的变量就外泄了出去,所以此时 JS 没有块级作用域的概念. 全局作用域就是最外层的作用域,如 ...
- 3、Python的IDE之Jupyter的使用
一.Jupyter介绍 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown.用途包括:数据清理和转换,数 ...
- PHP程序员最容易犯的Mysql错误
对于大多数web应用来说,数据库都是一个十分基础性的部分.如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子. 对于很多新手们来说,使用PHP可以在短短几个小时之内轻松 ...
- 自动化发送邮件之SMTP
一.思路 1.若是QQ邮箱需要在设置-账户里面开启服务 2.在python中smtplib库是专门用来处理邮件 3.自动化邮件发送实操 a.要处理的邮件主题,寄件人,收件人,邮件正文,附件, b.邮件 ...
- (实例2) TFT2.0液晶屏幕测试 mega2560
关键修改 针对mega2560板子 #define TFT_RST A4 #define TFT_RS A3 #define TFT_CS A5 // SS #define TFT_SDI A2 // ...
- Direction of Arrival Based Spatial Covariance Model for Blind Sound Source Separation
基于信号协方差模型DOA的盲声源分离[1]. 在此基础上,作者团队于2018年又发布了一篇文章,采用分级和时间差的空间协方差模型及非负矩阵分解的多通道盲声源分离[2]. 摘要 本文通过对短时傅立叶变换 ...
- zzulioj - 2619: 小新的信息统计
题目链接:http://acm.zzuli.edu.cn/problem.php?id=2619 题目描述 马上就要新生赛了,QQ群里正在统计所有人的信息,每个人需要从群里下载文件,然后 ...
- [USACO12MAR]花盆 二分 单调队列
[USACO12MAR]花盆 二分 单调队列 存在一个长度为\(x\)的区间\([l,r]\),使得区间中最大值与最小值差至少为\(w\),求这个最小的\(x\) \(n\le 100000\),\( ...
- nbbnbnbnbnb
1.本章学习总结(2分) 1.1 学习内容总结 结构体的定义与赋值 结构类型定义的一般形式为: struct 结构名 { 类型名 结构成员1: 类型名 结构成员2: ... 类型名 结构成员3: }; ...
- 转载:四两拨千斤:借助Spark GraphX将QQ千亿关系链计算提速20倍
四两拨千斤:借助Spark GraphX将QQ千亿关系链计算提速20倍 时间 2016-07-22 16:57:00 炼数成金 相似文章 (5) 原文 http://www.dataguru.cn/ ...