starrocks be内存不回收

starrocks版本号:2.2.4
目前的问题是:集群中只有10多个stream load和routine load导入任务,昨天有个开发上了一个大sql之后,内存就一直高居不下(该sql已经停了)

fe配置:3节点,4c+16g
be配置:3节点,8c+32g

be特殊配置:
##routine load特殊配置
routine_load_thread_pool_size = 10
load_process_max_memory_limit_percent = 50
tc_use_memory_min = 0
tc_free_memory_rate = 0

其他都是默认参数,be内存占用如图:


请问be是如何释放内存的?或者如何找出占用内存的原因?

可以试试2.3资源组隔离版本 可以限制大查询使用资源

停掉大查询之后,观察内存使用下来了吗?有大查询的时候内存使用率多少

并没有完全下来,最高的使用内存还是在50%以上,一直在page heap freelist里面不释放

可以升级到2.2的最新版本,就会释放了,但也不是立即释放,是为了提高查询性能(内存快速分配)
会缓慢释放给 OS,会保留一部分空闲内存,小于 tc_use_memory_min 的内存,这部分不会还给 OS,实际使用内存以 starrocks_be_tcmalloc_bytes_in_use 为准

好的,那现在这个版本是内存泄漏问题还是什么导致的呢?

tc_use_memory_min,这个参数我都调整为0了

另外,没看到2.2.10的release note呢?

您好,预计今天发出,感谢您的关注

好的,谢谢,我准备下周先在测试环境升级试试?另外,为什么之前的版本没这个问题呢?是2.2.4的bug?

好的,新版本有优化,2.2.10的release note发了: https://docs.starrocks.io/zh-cn/main/release_notes/release-2.2

好的,谢谢,我看看

你好,没看到2.2.10的release note呢?

Hi,测试环境我已经升到2.2.10版本了,有没有什么办法可以测试下be内存回不回收的方法呢?