开启workload group内存硬限制后,部分SQL限制不了

Viewed 60

Doris版本:2.1.5

workload group能够现在哪些查询类型,不能限制哪些查询类型,官网有说明吗?
比如说可以现在group by操作,限制不了count(distinct)操作

3 Answers

可以描述下具体表现是什么,比如是如何配置如何观测的
目前内存这块的主要问题是,top命令看到的进程内存往往要比workload group配置的大
BE进程的内存分为以下几个部分:

  1. 查询/导入语句使用的内存
  2. 副本元数据的使用的内存
  3. Doris的PageCache内存,内存分配器的cache
  4. 第三方组件的内存,比如BRPC,Thrift RPC的内存

目前workload group可以管理的只是查询和导入的内存,这部分内存可以通过如下sql查询:

select sum(t1.CURRENT_USED_MEMORY_BYTES) from backend_active_tasks t1 inner join active_queries t2 on t1.query_id=t2.query_id where t2.WORKLOAD_GROUP_ID=46045;

http://be_ip:be_http_port/mem_tracker,可以打开这个页面看下
image.png
目前workload group可以管的主要是query的部分

这部分内存查询内存是没办法用的是吧

所有cache类的内存,在内存不足时都会释放,可以理解为操作系统的缓存

1、您的意思是global中的这三项cache在查询内存不足时都会释放掉是吗?
2、当前查询所需要的data_cache应该不会释放掉吧?
3、/mem_tracker下的tc/jemalloc_cache(通用内存分配器 TCMalloc 或 Jemalloc 的缓存)会释放吗?我看占用内存还是比较大的

/mem_tracker?type=global

image.png

/mem_tracker

image.png