查询报资源组内存超限,但是be内存使用率并不高

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】查询报以下资源组超限错误,但是be的内存监控并未有大的波动,且be总使用大小在60G左右

Process error, query_id=be72925a-84a3-11ef-bd03-6805cad550d4, instance_id=be72925a-84a3-11ef-bd03-6805cad55108, status=Memory limit exceeded: Memory of rg_appuser exceed limit. Pipeline Backend: 10.168.xx.xx, fragment: be72925a-84a3-11ef-bd03-6805cad55108 Used: 120972056528, Limit: 118062263593. Mem usage has exceed the limit of the resource group [rg_appuser]. You can change the limit by modifying [mem_limit] of this group

资源组配置如下:

be内存监控如下:

问题时间段资源组内存使用情况(starrocks_be_resource_group_mem_inuse_bytes)如下,单位是MB,从资源组使用内存的涨幅看rg_appuser这个资源组内存使用在一个小时都在持续增长

查了9点至11点的审计日志,单个查询最大的内存消耗也在12G,且查询耗时才持续了7秒多


【背景】
【业务影响】查询超过资源组限制失败
【是否存算分离】否
【StarRocks版本】3.2.8
【集群规模】3fe(1 follower+2observer)+12be(fe与be混部)
【机器信息】40C/256G/万兆
【联系方式】 StarRocks社区群5 -思变 [1412195108@qq.com]
【附件】

  • 慢查询:
    mysql:[sjzx_db] 21:41:31> show variables like ‘%parallel_fragment_exec_instance_num%’;
    ±------------------------------------±------+
    | Variable_name | Value |
    ±------------------------------------±------+
    | parallel_fragment_exec_instance_num | 1 |
    ±------------------------------------±------+
    1 row in set (0.01 sec)

mysql:[sjzx_db] 21:41:34> show variables like ‘%pipeline%’;
±-----------------------±------+
| Variable_name | Value |
±-----------------------±------+
| enable_pipeline_engine | true |
| max_pipeline_dop | 64 |
| pipeline_dop | 10 |
| pipeline_profile_level | 1 |
| pipeline_sink_dop | 0 |
±-----------------------±------+

rg_appuser资源组设置的mem_limit 是40%,达到资源组内存上限了吧。
监控中内存是每15秒上报一次的,可能使用峰值没有被计算到 被平均了

但是相同的语句手动查询,审计日志里监控到的单句内存消耗不到1M的

同时刻有其他的查询在使用资源组的内存么

S~K96($~VNZJ@_)R2~FWQ2C

这报错是持续的

两个报错的时间段,资源组使用大小一直在增长,指标starrocks_be_resource_group_mem_inuse_bytes,有什么方法可以监控到这个资源组内存是被哪些用户的哪些sql占用的吗?

从starrocks_be_resource_group_mem_inuse_bytes资源组使用内存监控来看,增长持续时间持续增长了好几分钟,grafana15秒监控一次,be内存使用率按理应该会体现了,还是说资源组使用内存这个指标不准

这个监控图左边单位是啥,上面be内存使用率看着也是有波动的

在fe.audit.log 中搜资源组名字 看看能不能统计到sql和用户名

单位是MB

查了9点至11点的审计日志,单个查询最大的内存消耗也在12G,且查询耗时才持续了7秒多,查询结束后占用资源组的内存就释放了吧?

从资源组使用内存的增长情况看,9点40开始到11点多,10.xxx.xx.17这个be资源组的使用内存在线性增长,最高增长到了97G,而同时段的be内存使用情况最高才72G,且资源组使用情况是持续增长,但be的内存使用未体现出增长情况,请问是否资源组使用内存统计存在问题,还是be内存监控存在问题呢

10.xxx.xx.17 rg_appuser资源组内存使用情况:

10.xxx.xx.17be内存使用情况: