典型场景示例:配置弹性资源池队列扩缩容策略
场景介绍
一个企业有多个部门,多个部门不同业务数据分析的时间段可能有所差异,具体场景如下:
- 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的扩缩容策略,其他时间段的作业任务通过配置队列的默认扩缩容策略进行保障。
队列名 |
新增的扩缩容时间段 |
新增的扩缩容时间段优先级 |
新增的扩缩容时间段最小和最大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时间段:
- 弹性资源池优先满足两个队列的最小CU,队列A先分配32CU,队列B分配64CU,剩余CU数为160CU:弹性资源池的最大CU-两个队列的最小CU之和=256-32-64=160CU。
- 剩余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时间段:
- 弹性资源池优先满足两个队列的最小CU,队列A先分配32CU,队列B分配64CU,剩余CU数为0CU:弹性资源池的最大CU-两个队列的最小CU之和=96-32-64=0CU。
- 因为剩余的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时间段:
- 弹性资源池优先满足两个队列的最小CU,队列A先分配32CU,队列B分配64CU,剩余CU数为32CU:弹性资源池的最大CU-两个队列的最小CU之和=128-32-64=32CU。
- 按照优先级,则优先将剩余的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时间段:
- 弹性资源池优先满足两个队列的最小CU,队列A先分配32CU,队列B分配64CU,剩余CU数为32CU:弹性资源池的最大CU-两个队列的最小CU之和=128-32-64=32CU。
- 因为两个队列的优先级相同,则剩余32CU随机分配给两个队列。
弹性资源池队列扩缩容策略配置
- 登录DLI控制台,参考创建弹性资源池并添加队列创建一个最小CU数为128CU和最大CU数为256CU的弹性资源池。
- 单击“资源管理 > 弹性资源池”,在已创建的弹性资源池所在行的“操作”列单击“队列管理”。
- 参考创建弹性资源池并添加队列添加队列test_a,在添加队列扩缩容配置步骤里面添加扩缩容策略。
- 设置默认的时间段优先级为5,最小CU为16,最大CU为32。
- 单击“新增”,添加一个优先级为20,时间段为:00--09,最小CU为64,最大CU为128。
图1 添加队列test_a的扩缩容策略
- 添加完成后,可以在队列管理的界面看到队列test_a的扩缩容策略配置。
图2 队列test_a扩缩容策略配置
单击结果图形化按钮,可以看到队列test_a的优先级和所有时间段的CU设置。图3 队列test_a扩缩容策略结果图形化
- 参考创建弹性资源池并添加队列添加队列test_b,在添加队列扩缩容配置步骤里面添加扩缩容策略。
- 设置默认的时间段优先级为5,最小CU为32,最大CU为64。
- 单击“新增”,添加一个优先级为20,时间段为:10--23,最小CU为64,最大CU为128。
图4 添加队列test_b的扩缩容策略
- 添加完成后,可以在队列管理的界面看到队列test_b的扩缩容策略配置。
图5 队列test_b扩缩容策略配置
单击结果图形化按钮,可以看到队列test_b和test_a所有时间段的优先级和CU设置。
图6 test_b和test_a所有时间段的优先级和CU设置