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