Greenplum 并发性能测试

2018-12-29 10:08:26 浏览数 (1)

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

0 人点赞