更新时间:2024-12-11 GMT+08:00

Doris多租户介绍

Doris多租户介绍

Doris多租户的特性是通过内核Workload Group资源软限制的方案实现的,通过“用户 > 租户角色 > Workload Group”模型对Workload进行分组管理,以保证内存和CPU资源的灵活调配和管控。目前支持CPU、内存、并发数和等待队列管理,模型设计如图1所示。

  • 该特性仅MRS 3.3.1及之后版本支持。
  • 集群已启用Kerberos认证(安全模式)支持在Manager界面创建和管理Doris多租户。
  • MRS 3.5.0及之后版本,MRS Doris默认租户“normal”的内存占比是90%,并发数是“10000”。
图1 Doris租户模型

用户与租户关联后,该用户提交的query任务就与Workload Group相关联,可以限制单个查询在BE节点上的CPU和内存资源的百分比,和配置资源组的内存软隔离。

开启内存软隔离后,当集群资源紧张时,将自动结束组内占用内存最大的若干个查询任务以减缓集群压力。当集群资源空闲时,一旦Workload Group使用资源超过预设值时,多个Workload将共享集群可用空闲资源并自动突破阈值,继续使用系统内存以保证查询任务的稳定执行。与此同时,在Workload Group中引入了查询排队的功能,在创建Workload Group时可以设置最大查询数,超出最大并发的查询将会进行队列中等待执行,以此来缓解高负载下系统的压力。

Doris租户角色和用户关联关系介绍

通过FusionInsight Manager服务配置和租户管理页面的操作,用户可以实现创建租户、关联服务、设置租户资源配置、租户关联用户等操作。Manager侧和Doris侧的角色和用户关联关系如下图所示:

租户关系中“用户 > 租户角色 > Workload Group”都是一对一关系;而权限角色,一个用户可对应多个角色。

当前版本支持的Doris租户资源配置列表如表1所示。

表1 租户资源配置

资源

取值范围

描述

备注

CPU配额权重

1~100

租户占用CPU资源的相对权重

相对占比(竞争时生效),例如有两个租户A和B执行查询,对应该值分别为A:10,B:20,此时租户A的CPU占用率为三分之一,即为:10/(10+20)。如果另有一租户C开始执行,对应值为30,则租户A的CPU占用率为六分之一,即为:10/(10+20+30)。

内存限额占比

  • MRS 3.3.1版本:1%~70%
  • MRS 3.5.0及之后版本:1%~90%

租户最大占用内存资源的百分比

租户的可用内存大小为:物理内存 * mem_limit * 内存限额占比,上限为70%(MRS 3.5.0及之后版本为90%),Doris默认租户normal占用了70%(MRS 3.5.0及之后版本为90%)

并发数

  • MRS 3.3.1版本:1~2147483647
  • MRS 3.5.0及之后版本:1~10000

租户最大可运行查询任务的并发数

该值是对单个FE的限定。例如设置并发数为1,Doris有三个FE节点,则从集群角度看,最大可运行的SQL数为3。

队列长度

  • MRS 3.3.1版本:0~2147483647
  • MRS 3.5.0及之后版本:0~1000

租户最大等待执行的查询任务数

超过并发数的SQL会进入队列等待,当队列满了之后,新提交的查询会被拒绝。

队列等待时长

  • MRS 3.3.1版本:0~2147483647
  • MRS 3.5.0及之后版本:0~86400000

租户等待执行的查询任务最大的等待时长

如果查询等待时间超过该值,那么查询会被拒绝,时间单位为毫秒。

开启内存软隔离

  • 开启
  • 关闭

租户是否可以超量占用内存资源

  • 如果关闭内存软隔离,系统检测到租户内存使用超出限制后将立即取消租户组内内存占用最大的若干个任务。
  • 如果开启内存软隔离,若该系统有空闲内存资源则该租户在超出内存的限制后可继续使用系统内存;只有当集群资源紧张时,才取消租户组内内存占用最大的若干任务。