Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Greenplum 并发性能测试

Greenplum 并发性能测试

原创
作者头像
小徐
修改于 2018-12-29 02:08:26
修改于 2018-12-29 02:08:26
3K4
举报
文章被收录于专栏:GreenplumGreenplum

Greenplum 并发性能测试

目录

Greenplum 并发性能测试 1

1 集群硬件信息 1

2 测试JAVA代码下载 2

3 单表单线程写入数据性能(测试案例一) 2

3.1 创建测试表 2

3.2 测试100W数据,每1000条提交一次 2

3.3 汇总测试结果 2

3.3.1 运行耗时 2

3.3.2 表的大小 2

3.3.3 表的行数 2

3.3.4 计算吐吞量 3

4 多表多线程写入数据性能(测试案例二) 3

4.1 创建测试表 3

4.2 测试4个线程,每个线程100W,每1000条提交一次 4

4.3 汇总测试结果 4

4.3.1 运行耗时 4

4.3.2 表的大小 4

4.3.3 表的行数 5

4.3.4 计算吞吐量 6

4.4 总结结果 6

5 单表多线程写入数据性能(测试案例三) 6

5.1 创建测试表 6

5.2 测试四个线程写入同一个表,每个线程100W,1000条提交一次 7

5.3 汇总测试结果 7

5.3.1 运行耗时 7

5.3.2 表的大小 7

5.3.3 表的行数 7

5.3.4 计算吞吐量 7

6 测试总结 8

7 TCP-H测试结果 8

1 集群硬件信息

硬件信息请查看以下链接

https://blog.csdn.net/xfg0218/article/details/82785196

2 测试JAVA代码下载

测试代码请下载:

链接: https://pan.baidu.com/s/1oOpPfuEDGMc9HboffH2ZGw 提取码: saf5

参考资料:https://blog.csdn.net/dinopan/article/details/81511974

3 单表单线程写入数据性能(测试案例一)

3.1 创建测试表

create table t_person4insert

(

id bigint,

name varchar(255)

)

distributed by(id);

3.2 测试100W数据,每1000条提交一次

请在代码中找到com.chinadaas.Person1Thread类即可测试

3.3 汇总测试结果

3.3.1 运行耗时

person cost = 2748667ms ÷ 1000 = 2748.667s

3.3.2 表的大小

stagging=# select pg_size_pretty(pg_relation_size('t_person'));

 pg_size_pretty

----------------

 51 MB

(1 row)

3.3.3 表的行数

stagging=# select count(*) from t_person;

  count  

---------

 1000000

(1 row)

3.3.4 计算吐吞量

51 ÷ 2748667 × 1000 ≈ 0.0185M/S

1000000 ÷ 2748667  × 1000 ≈ 363.81行/S

4 多表多线程写入数据性能(测试案例二)

4.1 创建测试表

create table t_person4insert1

(

id bigint,

name varchar(255)

)

distributed by(id);

create table t_person4insert2

(

id bigint,

name varchar(255)

)

distributed by(id);

create table t_person4insert3

(

id bigint,

name varchar(255)

)

distributed by(id);

create table t_person4insert4

(

id bigint,

name varchar(255)

)

distributed by(id);

4.2 测试4个线程,每个线程100W,每1000条提交一次

请在代码中找到com.chinadaas.Person4Thread类即可测试

4.3 汇总测试结果

4.3.1 运行耗时

四个线程整体的耗时为:3240611ms ≈ 3240 s

4.3.2 表的大小

4.2.2.1查看第一张表的大小

stagging=# select pg_size_pretty(pg_relation_size('t_person4insert1'));

 pg_size_pretty

----------------

 51 MB

(1 row)

4.2.2.2查看第二张表的大小

stagging=# select pg_size_pretty(pg_relation_size('t_person4insert2'));

 pg_size_pretty

----------------

 51 MB

(1 row)

4.2.2.3查看第三张表的大小

stagging=# select pg_size_pretty(pg_relation_size('t_person4insert3'));

 pg_size_pretty

----------------

 51 MB

(1 row)

4.2.2.4查看第四张表的大小

stagging=# select pg_size_pretty(pg_relation_size('t_person4insert4'));

 pg_size_pretty

----------------

 51 MB

(1 row)

Time: 31.728 ms

4.3.3 表的行数

4.3.3.1 查看第一个表的行数

stagging=# select count(*) from t_person4insert1;

  count  

---------

 1000000

(1 row)

Time: 66.177 ms

4.3.3.2 查看第二个表的行数

stagging=# select count(*) from t_person4insert2;

  count  

---------

 1000000

(1 row)

Time: 39.403 ms

4.3.3.3 查看第三个表的行数

stagging=# select count(*) from t_person4insert3;

  count  

---------

 1000000

(1 row)

Time: 39.403 ms

4.3.3.4 查看第四个表的行数

stagging=# select count(*) from t_person4insert4;

  count  

---------

 1000000

(1 row)

Time: 70.558 ms

4.3.4 计算吞吐量

51 ÷ 3240611 × 1000 ≈ 0.0157M/S

1000000 ÷ 3240611 × 1000 ≈ 308.58行/S

4.4 总结结果

以下是单线程结果

51 ÷ 2748667 × 1000 ≈ 0.0185M/S

1000000 ÷ 2748667  × 1000 ≈ 363.81行/S

以下是多线程结果

51 ÷ 3240611 × 1000 ≈ 0.0157M/S

1000000 ÷ 3240611 × 1000 ≈ 308.58行/S

四个线程的吞吐量比单线程慢了很多

5 单表多线程写入数据性能(测试案例三)

5.1 创建测试表

create table t_person4insertrange

(

id bigint,

name varchar(255)

)

distributed by(id);

5.2 测试四个线程写入同一个表,每个线程100W,1000条提交一次

请在代码中找到com.chinadaas.PersonRangegThread类即可测试

5.3 汇总测试结果

5.3.1 运行耗时

total cost = 3164341ms ≈ 3164s

5.3.2 表的大小

stagging=# select pg_size_pretty(pg_relation_size('t_person4insertrange'));

 pg_size_pretty

----------------

 200 MB

(1 row)

Time: 7.443 ms

5.3.3 表的行数

stagging=# select count(*) from t_person4insertrange;

  count  

---------

 4000000

(1 row)

Time: 162.728 ms

5.3.4 计算吞吐量

200 ÷ 3164341 × 1000 ≈ 0.063M/S

4000000 ÷ 3164341 × 1000 ≈ 1264行/S

6 测试总结

在以上的结果中可以看出使用多线程写入单个表的速度还是可以的,达到1264行/S

7 TCP-H测试结果

详细的测试结果请查看:

https://blog.csdn.net/xfg0218/article/details/82785187

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
4 条评论
热度
最新
您好,我刚接触gp,对gp和架构和整体性能不是太了解,想请问一下,gp适合做数据采集的存储中心吗?比如一些业务系统的数据进行周期性的采集存储到gp中,这个情景适合吗
您好,我刚接触gp,对gp和架构和整体性能不是太了解,想请问一下,gp适合做数据采集的存储中心吗?比如一些业务系统的数据进行周期性的采集存储到gp中,这个情景适合吗
33点赞举报
适合,采集的工具可以参考kettle,streamsets或者shell等工具。也可以使用gp自带的工具例如gpfdist等组件
适合,采集的工具可以参考kettle,streamsets或者shell等工具。也可以使用gp自带的工具例如gpfdist等组件
回复回复点赞举报
有任何问题可以再https://ask.greenplum.cn/查看或提问
有任何问题可以再https://ask.greenplum.cn/查看或提问
回复回复点赞举报
查看全部3条回复
推荐阅读
编辑精选文章
换一批
Greenplum gpload命令使用
Runs a load job as defined in a YAML formatted control file.
小徐
2018/12/20
2.9K0
Greenplum  gpload命令使用
Greenplum数据库使用总结(干货满满)--高级使用
stagging=# select gp_segment_id,count(1) from tablename group by 1;
小徐
2019/08/05
3.9K0
Greenplum数据库使用总结(干货满满)--常见创建TABLE方式
create table test_head(id int primary key) distributed by (id);
小徐
2019/08/05
3.1K0
Greenplum数据库使用总结(干货满满)--常见创建TABLE方式
Greenplum高级使用
stagging=#  select gp_segment_id,count(1) from  tablename  group by 1;
小徐
2019/01/28
1.6K1
Greenplum高级使用
30个实用SQL语句,玩转PostgreSQL
PostgreSQL是一款功能非常强大的开源关系型数据库,它支持哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN等多种索引模式,同时可安装功能丰富的扩展包。相较于Mysql,PostgreSQ支持通过PostGIS扩展支持地理空间数据、支持嵌套循环,哈希连接,排序合并三种表连接方式等一系列的强化功能。本文主要整理总结了30个实用SQL,方便大家可以高效利用PostgreSQL。
慕枫技术笔记
2023/03/20
7900
30个实用SQL语句,玩转PostgreSQL
greenplum gptransfer命令使用
12.2 gptransfer命令使用 12.2.1 gptransfer 介绍 详细请查看官网介绍: https://gpdb.docs.pivotal.io/510/utility_guide/admin_utilities/gptransfer.html 或查看中文文档: https://gp-docs-cn.github.io/docs/admin_guide/managing/gptransfer.html 12.2.2 gptransfer 命令参数介绍 gptransfer参数详细介绍请查看:
小徐
2019/05/17
1.1K0
greenplum gptransfer命令使用
Postgresql垃圾回收原理分析
间隔删除数据,使用ctid(页面号,lp号)作为条件,发现数据并没有真正的从页面中删除
mingjie
2022/05/12
8800
Postgresql垃圾回收原理分析
Greenplum性能优化之路 --(三)ANALYZE
基于规则的优化器,就是优化器在优化查询计划的时候,是根据预先设置好的规则进行的,这些规则无法灵活改变。举个例子,索引优先于扫描,这是一个规则,优化器在遇到所有可以利用索引的地方,都不会选择扫描。这在多数情况下是正确的,但也不完全如此:
lambgong
2020/08/25
4.4K0
Greenplum性能优化之路 --(三)ANALYZE
Greenplum常见创建表方式与说明
drop table if exists test_head; create table test_head(id int primary key) distributed by (id);
小徐
2018/09/27
5.1K0
Greenplum常见创建表方式与说明
Greenplum 集群性能测试
114.112.77.199 master、segment 210.73.209.103 standby master、segment 140.210.73.67 segment
用户1148526
2021/12/07
7980
PostgreSQL 扫盲贴 常用的监控分析脚本
我一直有一个错觉,大家的POSTGRESQL的技术都非常了得,在年前实际上对我有几次的感触。
AustinDatabases
2025/03/03
1150
PostgreSQL 扫盲贴 常用的监控分析脚本
Greenplum数据库巡检报告
4.2.4 查看所有segment是否可达,确保QD(query dispatching)正常 16
小徐
2020/04/20
2.7K0
Greenplum数据库巡检报告
Greenplum常用导数据方法及性能测试
# 生成隐藏字符 soh=`echo 1 | awk '{printf("%c", $1)}'` replaceWord=$1
小徐
2018/09/25
4.4K3
Greenplum常用导数据方法及性能测试
Ubuntu18 安装和使用 Greenplum
在gpssh-exkeys -h localhost 这一步,显示无法连接本地 ssh。
总想玩世不恭
2021/05/27
9510
PostgreSQL技术大讲堂 - 第24讲:TOAST技术
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。
用户5892232
2023/07/27
4100
PostgreSQL技术大讲堂 - 第24讲:TOAST技术
MogDB/openGauss 故障排查思路
当我们收到反馈说数据库响应慢或者压测过程中数据库有报错,第一步先收集数据库服务器资源使用情况,这一步是处理所有故障的前提。
数据和云
2021/10/13
1.1K0
PostgreSQL 如何对索引进行分析和处理
最近有人私信问POSTGRESQL 怎么比MYSQL的索引大,这个问题升级上我个人觉得从这几点考虑
AustinDatabases
2023/09/06
3990
PostgreSQL 如何对索引进行分析和处理
PG使用插件pg_squeeze解决表和索引的膨胀问题
PostgreSQL中大量更新或者删除记录后,加上autovacuum参数未做优化或设置不当,会导致表及索引膨胀。生产环境除了手动使用vacuum之外,还有两个比较常用的工具:一个是pg_repack,另外一个是pg_squeeze。
AiDBA宝典
2023/04/27
1.9K0
PG使用插件pg_squeeze解决表和索引的膨胀问题
PostgreSql Postgresql 监控你说了不算,谁说了算 ? (5 整理的一些脚本)
一写就写到了第五期,有点写连续剧的味道,可能会有第六期,我想是,今天的内容并不是某些工具,其实工具也是根据数据库的原理,通过各种方式获得数据。那怎么通过PG中的系统表来获得数据就是这期的重点。
AustinDatabases
2020/07/16
7370
PostgreSql  Postgresql 监控你说了不算,谁说了算 ? (5  整理的一些脚本)
大数据标签查询优化实战之pg_roaringbitmap
pg_roaringbitmap是一个基于roaringbitmap而实现的压缩位图存储数据插件,支持roaring bitmap的存取、集合操作,聚合等运算。
腾讯云数据库 TencentDB
2022/01/18
2.2K1
大数据标签查询优化实战之pg_roaringbitmap
推荐阅读
相关推荐
Greenplum gpload命令使用
更多 >
交个朋友
加入腾讯云技术交流站
洞悉AI新动向 Get大咖技术交流群
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档