问题背景
Starrocks执行查询报错:Memory of process exceed limit. Used: XXX, Limit: XXX. Mem usage has exceed the limit of BE
分析过程
1、从报错信息是超过BE了进程配置的内存限制。
2、BE节点介绍:BackEnd简称BE,是StarRocks的后端节点,负责数据存储,计算执行,以及compaction,副本管理等工作。
3、查看机器节点的内存大小比如内存32G,BE的mem_limit是90% 软限是80%,32GB*0.8=25GB,再结合上图的报错信息的Limit内存大小来看,就是超过软限内存了
方案结论
1、增加节点内存:随着业务数据量增加内存使用肯定也会同步增加,无法应对突然导入数据量增大的情况。
2、优化内存表:StarRocks支持把表数据全部缓存在内存中,用于加速查询,内存表适合数据行数不多维度表的存储。但是内存表在实际使用中优化并不完善,建议可以先不使用内存表。
3、内存优化参数:可以参考Starrocks官网的管理并调优内存资源来做调优:https://docs.starrocks.io/zh-cn/latest/administration/Memory_management
适用范围
开源大数据平台E-MapReduce