【详述】因为数据量过大,内存不足。希望通过降低并行度,减少内存使用。
【背景】这是个模拟数据,大佬们可以 *10或 *100代入
【业务影响】
【StarRocks版本】例如:2.5.x
【集群规模】1fe+3be(fe与be混部)
【机器信息】
【联系方式】541166058@qq.com
【附件】
表信息:分布键-pt,桶数-30(每个be是10个桶),每桶数据量 - 1.+G(解压后大小,均匀分布)
查询sql:select *,row_number() over(partition by pt order by col1 desc ) as rn from table
资源使用情况(测试数据,模拟大数据场景,假设未来数据大小不是30-40G,而是300-400G甚至更多):
- 当并行度30(每个be为10,也就是30个instance,每个be执行10个instance):每个instance占用内存1.5G,所以每个be内存需要15G+内存(profile统计所得,并非人为预估)
- 当并行度3(每个be为1):每个instance占用内存15G,所以每个be仍旧需要15G内存。。
提问:有没有什么参数或者办法,能够让方案二,并行度为3的时候,内存复用?比如第一桶数据用1.5G处理完,排队到第二桶数据时也用这1.5G来处理。这样所需内存就是1.5G,而不是15G了