测试目标
测试StarRocks 3.0.0版本存算分离在真实业务场景中的性能表现,主要包含以下测试场景:
- 测试存算分离架构下表的数据导入性能,包括routine load,stream load,以及sql insert/update/delete
- 测试存算分离架构下表的查询性能,包括开启本地缓存与为开启本地缓存的对比
- 测试be节点扩缩容时服务稳定性以及性能对比
硬件规格
FE
硬件 | 规格说明 |
---|---|
实例规格 | 阿里云ecs.c6.2xlarge |
Region | 北京 |
节点数 | 1 |
CPU | 8 vCPU |
内存 | 16 GB |
磁盘 | 100GB SSD |
BE:
硬件 | 规格说明 |
---|---|
实例规格 | 阿里云ecs.i3g.4xlarge |
节点数 | 3 |
Region | 北京 |
CPU | 16 vCPU |
内存 | 64GB |
磁盘 | 900 GB nvme本地盘 |
软件版本
StarRocks 3.0.0
软件配置
BE参数
buffer_stream_reserve_size = 8192
routine_load_thread_pool_size=30
max_routine_load_task_concurrent_num=10
lake_gc_segment_expire_seconds=3600
lake_gc_segment_check_interval=1800
experimental_lake_enable_fast_gc=true
lake_gc_metadata_max_versions=1
starlet_fs_stream_buffer_size_bytes=1048576
compact_threads=16
max_consumer_num_per_group=100
tablet_max_pending_versions=10000
tablet_max_versions=10000
FE参数
max_routine_load_task_num_per_be=30
routine_load_task_consume_second=30
global变量
set global enable_query_cache =false;
set global new_planner_optimize_timeout=600000;
set global enable_profile=true;
set global query_timeout =1800;
测试结果
数据导入
使用数据导入方式为:stream Load / routine load / sql insert
导入性能如下:
Routine load导入峰值12万QPS,数据json格式,单条大小300B左右。
Stream load导入峰值15万QPS,数据json格式,单条大小100B左右。
Sql insert,使用hive catalog,将hive orc表数据insert到olap表,按照hive天分区导入,4000万数据导入耗时90S左右。
数据查询
sr-3.0-cloud-native | Others | |
---|---|---|
QUERY01 | 超过40亿数据表Count distinct,第一次查询耗时21s,后面每次耗时3s。 | Presto+hive 耗时120S |
QUERY02 | 多张表union all后的group by 耗时3S | 耗时13S |
QUERY03 | 多张表union all后的group by 耗时8S | 耗时45S |
QUERY04 | join后group by 耗时0.5S | 耗时10S |
QUERY05 | Select disctin from 子查询join后group by 耗时0.7s | 耗时10S |
QUERY06 | 多表join后count/sum 耗时1.5S | 耗时16S |
QUERY07 | 多表join后count/sum 1.8S | 8S |