文档首页/ 数据湖探索 DLI/ 用户指南/ 创建弹性资源池和队列/ 典型场景示例:配置弹性资源池队列扩缩容策略
更新时间:2024-11-07 GMT+08:00

典型场景示例:配置弹性资源池队列扩缩容策略

场景介绍

一个企业有多个部门,多个部门不同业务数据分析的时间段可能有所差异,具体场景如下:

  • A部门:在00:00-09:00时间段内资源请求量大,其他时间段有短时间的资源请求量不大的任务运行。
  • B部门:在10:00-22:00时间段内资源请求量大,其他时间段内也有固定周期的作业请求也需要保障。

针对上述场景,弹性资源池上可以添加两个队列,队列test_a用于运行A部门的作业任务,队列test_b运行B部门的作业任务。两个部门请求量大的任务时间段固定,则可以在test_a和test_b队列上分别添加两个时间段00:00-09:00和10:00-23:00的扩缩容策略,其他时间段的作业任务通过配置队列的默认扩缩容策略进行保障。

表1 队列扩缩容策略

队列名

新增的扩缩容时间段

新增的扩缩容时间段优先级

新增的扩缩容时间段最小和最大CU

默认扩缩容时间段

默认时间段优先级

默认扩缩容时间段最小和最大CU

备注

test_a

[00:00,09:00)

20

最小CU:64

最大CU:128

新增的扩缩容时间段[00:00,09:00)以外的时间段范围

5

最小CU:16

最大CU:32

运行A部门作业

test_b

[10:00,23:00)

20

最小CU:64

最大CU:128

新增的扩缩容时间段[10:00,23:00)以外的时间段范围

5

最小CU:32

最大CU:64

运行B部门作业

注意事项

  • 在全天的任意一个时间段内,弹性资源池中所有队列的最小CU数之和需要小于等于弹性资源池的最小CU数。
  • 在全天的任意一个时间段内,弹性资源池中任意一个队列的最大CU必须小于等于弹性资源池的最大CU。
  • 同一队列不同扩缩容策略的时间段区间不能有交集。
  • 弹性资源池队列中的扩缩容策略时间段仅支持整点的时间段设置,并且包含设置的开启时间,不包含设置的结束时间,例如设置时间段00-09,则时间段范围为:[00:00,09:00)。默认的扩缩容策略不支持时间段配置修改。
  • 弹性资源池扩缩容策略生效规则为:在任意一个时间段周期内,优先满足所有队列的最小CU数。剩余的CU(弹性资源池最大CU-所有队列的最小CU数之和)则根据配置的优先级顺序分配:
    • 如果队列的优先级不同,根据配置的优先级顺序分配,直到剩余的CU数分配完成。
    • 如果队列的优先级相同,资源会被随机分配到某一队列,如果分配后资源还有剩余会随机分配到剩下的某一队列中,直到剩余的CU数分配完成。
      表2 弹性资源池扩缩容CU分配场景说明

      场景

      弹性资源池CU数分配说明

      弹性资源池当前最大CU为256CU,添加了两个队列,分别为队列A和队列B。两个队列设置的扩缩容策略如下:

      • 队列A扩缩容策略:优先级5,时间段:00:00-9:00,最小CU是32,最大CU是128
      • 队列B扩缩容策略:优先级10,时间段:00:00-9:00,最小CU是64,最大CU是128

      到了00:00-9:00时间段:

      1. 弹性资源池优先满足两个队列的最小CU,队列A先分配32CU,队列B分配64CU,剩余CU数为160CU:弹性资源池的最大CU-两个队列的最小CU之和=256-32-64=160CU。
      2. 剩余CU数根据优先级高低来分配,因为队列B的优先级高于队列A,则优先将64CU分配给队列B,剩余的96CU全部分配给队列A。

      弹性资源池当前最大CU为96CU,添加了两个队列,分别为队列A和队列B。两个队列设置的扩缩容策略如下:

      • 队列A扩缩容策略:优先级5,时间段:00:00-9:00,最小CU是32,最大CU是64
      • 队列B扩缩容策略:优先级10,时间段:00:00-9:00,最小CU是64,最大CU是128

      到了00:00-9:00时间段:

      1. 弹性资源池优先满足两个队列的最小CU,队列A先分配32CU,队列B分配64CU,剩余CU数为0CU:弹性资源池的最大CU-两个队列的最小CU之和=96-32-64=0CU。
      2. 因为剩余的CU数已经没有,则停止分配。

      弹性资源池当前最大CU为128CU,添加了两个队列,分别为队列A和队列B。两个队列设置的扩缩容策略如下:

      • 队列A扩缩容策略:优先级5,时间段:00:00-9:00,最小CU是32,最大CU是64
      • 队列B扩缩容策略:优先级10,时间段:00:00-9:00,最小CU是64,最大CU是128

      到了00:00-9:00时间段:

      1. 弹性资源池优先满足两个队列的最小CU,队列A先分配32CU,队列B分配64CU,剩余CU数为32CU:弹性资源池的最大CU-两个队列的最小CU之和=128-32-64=32CU。
      2. 按照优先级,则优先将剩余的32CU分配给B队列后停止分配。

      弹性资源池当前最大CU为128CU,添加了两个队列,分别为队列A和队列B。两个队列设置的扩缩容策略如下:

      • 队列A扩缩容策略:优先级5,时间段:00:00-9:00,最小CU是32,最大CU是64
      • 队列B扩缩容策略:优先级5,时间段:00:00-9:00,最小CU是64,最大CU是128

      到了00:00-9:00时间段:

      1. 弹性资源池优先满足两个队列的最小CU,队列A先分配32CU,队列B分配64CU,剩余CU数为32CU:弹性资源池的最大CU-两个队列的最小CU之和=128-32-64=32CU。
      2. 因为两个队列的优先级相同,则剩余32CU随机分配给两个队列。

弹性资源池队列扩缩容策略配置

  1. 登录DLI控制台,参考创建弹性资源池并添加队列创建一个最小CU数为128CU和最大CU数为256CU的弹性资源池。
  2. 单击“资源管理 > 弹性资源池”,在已创建的弹性资源池所在行的“操作”列单击“队列管理”。
  3. 参考创建弹性资源池并添加队列添加队列test_a,在添加队列扩缩容配置步骤里面添加扩缩容策略。

    1. 设置默认的时间段优先级为5,最小CU为16,最大CU为32。
    2. 单击“新增”,添加一个优先级为20,时间段为:00--09,最小CU为64,最大CU为128。
    图1 添加队列test_a的扩缩容策略

  4. 添加完成后,可以在队列管理的界面看到队列test_a的扩缩容策略配置。

    图2 队列test_a扩缩容策略配置
    单击结果图形化按钮,可以看到队列test_a的优先级和所有时间段的CU设置。
    图3 队列test_a扩缩容策略结果图形化

  5. 参考创建弹性资源池并添加队列添加队列test_b,在添加队列扩缩容配置步骤里面添加扩缩容策略。

    1. 设置默认的时间段优先级为5,最小CU为32,最大CU为64。
    2. 单击“新增”,添加一个优先级为20,时间段为:10--23,最小CU为64,最大CU为128。
    图4 添加队列test_b的扩缩容策略

  6. 添加完成后,可以在队列管理的界面看到队列test_b的扩缩容策略配置。

    图5 队列test_b扩缩容策略配置

    单击结果图形化按钮,可以看到队列test_b和test_a所有时间段的优先级和CU设置。

    图6 test_b和test_a所有时间段的优先级和CU设置