目前生产使用doris最大的顾虑就是可能存在不预期的大批量大sql会对集群资源造成很大的冲击,导致整个集群不可用
再了解workload group资源隔离特性后并且等待迭代的多个版本后再生产对该特性进行了施工
生产的doris版本是V2.1.7,并且是CGroup V1版本前置目录和be的配置都已经做好了配置
然后新增了两个组,分别是a_group,b_group并且将主要的查询也用户a_user和b_user挂载并默认配置组,施工执行语句如下
CREATE WORKLOAD GROUP IF NOT EXISTS a_group
PROPERTIES(
"memory_limit"="30%",
"cpu_share"="157286",
"cpu_hard_limit"="40%",
"enable_memory_overcommit"="false"
);
GRANT USAGE_PRIV ON WORKLOAD GROUP 'a_group' TO 'a_user'@'%';
set property for 'a_user' 'default_workload_group' = 'a_group';
因为主要的两个用户独立出去了,所以把默认的normal组也做了调整并开启硬隔离
alter workload group normal properties('cpu_hard_limit'='10%','enable_memory_overcommit'='false','memory_limit'='10%');
ADMIN SET FRONTEND CONFIG ("enable_cpu_hard_limit" = "true");
这么配置后,总体的workload group的memory limit是 50%,所有的workload groupd enbale_meory_overcommit都是false,总的cpu_hard_limit是60%
我理解这么配置后,不管怎么样,集群都不会崩,因为左右最大资源的冗余了很大
但是实际情况是,cpu和内存还是照样被打满,与我原来的预期差很多
是我配置的问题?还是对这个特性的理解不对?