
# 弹性资源池包周期CU（规格）变更
#### 使用场景
弹性资源池包周期CU（规格）变更可以根据业务实际的资源使用需求，调整资源池的资源配置和计费模式，以实现资源的高效利用和成本优化。
包年包月的弹性资源池CU数在包周期CU（规格）的范围内使用包年包月计费，超过包周期CU（规格）的部分则按弹性资源池CU时计费的方式计费，您可以根据实际CUs的使用情况通过规格变更来使得计费更优惠。
例如，当前弹性资源池的包周期CU（规格）为64CU，实际使用过程中大部分时间CU数在128CU以上，没有规格变更的场景下64CU部分采用包年包月计费，超出的64CU按弹性资源池CU时计费方式计费。为了满足该场景下更优惠的计费，则可以通过规格变更的方式，将弹性资源池的规格扩大到128CU，则规格变更成功后128CU范围内都使用包年包月计费，整体相比原来更优惠。
简言之弹性资源池的包周期CU（规格）变更可以将正在使用中的超出包周期CU（规格）的资源的计费模式从按需转换为包周期，以实现资源的高效利用和成本优化。
#### 注意事项
- 当前仅支持包年包月计费模式的弹性资源池进行包周期CU（规格）变更。
- 调整队列的CU范围、弹性资源池包周期CU（规格）变更、弹性资源池的CU设置，均在下一个整点生效。
- 通过增加队列调整弹性资源池的实际CUs，立即生效。
 
#### 弹性资源池相关基本概念
本节介绍弹性资源池实际CUs、已使用CUs、CU范围、包周期CU（规格）的含义。
#### 关系图和相关约束
- 实际CUs在CU范围的\[最小值, 最大值\]区间内变化。
- 当实际CUs ≤ 包周期CU时，全部按包周期单价计费，无按需费用。
- 当实际CUs ＞ 包周期CU时，差额按按需单价每小时补收。
图1DLI实际CUs 、已使用CUs、CU范围、包周期CU关系图   
![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002576331535.png "点击放大")
**弹性资源池CU设置相关约束**：
- 弹性资源池CU范围minCU**小于等于**实际CUs，如果扩容时minCU的目标值大于实际CUs，需要先扩容实际CUs，否则修改失败。
- 弹性资源池中所有队列的最小CU数之和需要小于等于弹性资源池的最小CU数。
- 弹性资源池中任意一个队列的最大CU必须小于等于弹性资源池的最大CU。
- 调整队列的CU范围、弹性资源池包周期CU变更、弹性资源池的CU设置，均在下一个整点生效。
- 通过增加队列调整弹性资源池的实际CUs，立即生效。
 
#### 实际CUs
- **实际CUs**是弹性资源池当前分配的可用于运行作业的计算资源总量（单位CUs）。同时作为计费的直接依据。
- **实际CUs** 的计算规则：
  - 当资源池中没有队列时：实际CUs等于弹性资源池的最小CU。
  
  - 当资源池中有队列时，实际CUs的计算公式：
    - 实际CUs=max{（min\[sum（队列maxCU），弹性资源池maxCU\]）, 弹性资源池minCU} 。 ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002519940441.png "点击放大")
      
    
    - 计算结果需满足为16CUs的倍数，如果不能整除16CUs则向上取整。
     
   
- **计费模式：**
  表1计费模式 
  | **计费模式** | **计费对象**          | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
  |:---|:---|:---|
  | 按需       | 按照实际CUs大小收费。      | 参考[弹性资源池计费模式说明](https://support.huaweicloud.com/price-dli/dli_12_0004.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | 包年包月     | 分为规格内、超出规格的两部分来计费 | - 规格的部分按包周期计费。  - 超出规格的部分：（实际CUs-规格）的部分按需计费。成本优化：为了满足该场景下更优惠的计费，则可以通过规格变更的方式，将弹性资源池的规格扩大到与实际CUs一致，则所有实际CUs按包周期计费，整体相比原来更优惠。 详细操作指导请参考[弹性资源池规格变更](https://support.huaweicloud.com/usermanual-dli/dli_01_0524.html)。    |
     
  
- **实际CUs与弹性资源池扩容的关系**
  弹性资源池的"扩容"或"缩容"就是指调整资源池的"实际CUs"。
  了解[弹性资源池扩容或缩容](https://support.huaweicloud.com/usermanual-dli/dli_01_0686.html)和[实际CUs计算公式](https://support.huaweicloud.com/usermanual-dli/dli_01_0686.html)。
  
- **实际CUs的分配示例：**
  如[表2]所示，弹性资源池实际CUs分配的计算过程如下：
  1. 计算队列maxCU之和：sum（队列maxCU）= 32 + 56 = 88CUs。
  
  2. 比较队列maxCU之和与弹性资源池maxCU，两者取最小值：min（88CUs，112CUs） = 88CUs。
  
  3. 再与弹性资源池minCU做比较取最大值：max（88CUs，64CUs）=88CUs
  
  4. 检查88CUs是否为16CU的倍数，由于88不能被16整除，故向上取整为96CUs。
      表2弹性资源池实际CUs分配示例 
     | 场景说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 资源类型  | CU范围      |
     |:---|:---|:---|
     | 新建弹性资源池64-112CUs 添加了两个队列，分别为队列A和队列B。两个队列设置的CU范围如下： - 队列A的CU范围：16-32CUs  - 队列B的CU范围：16-56CUs   | 弹性资源池 | 64-112CUs |
     | 新建弹性资源池64-112CUs 添加了两个队列，分别为队列A和队列B。两个队列设置的CU范围如下： - 队列A的CU范围：16-32CUs  - 队列B的CU范围：16-56CUs   | 队列A   | 16-32CUS  |
     | 新建弹性资源池64-112CUs 添加了两个队列，分别为队列A和队列B。两个队列设置的CU范围如下： - 队列A的CU范围：16-32CUs  - 队列B的CU范围：16-56CUs   | 队列B   | 16-56CUS  |
        
     
   
 
#### 已使用CUs
- **定义：**
  已使用CUs等于当前时刻真正被作业或任务占用且正在运行的CU数量。已使用CUs存在5分钟延迟。
  
- **与实际CUs的区别：**
  实际CUs是平台为该资源池分配的总量；已使用CUs是其中"正在跑任务"的那一部分。
  
- **约束与限制**
  Spark引擎、Flink引擎允许实际CUs \> 已使用CUs，差值即为"空闲可立即使用"部分。
  
图2已使用CUs   
![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002576357255.png "点击放大")
#### CU范围
CU范围是弹性资源池扩缩容的"安全栅栏"，由"最小CU"和"最大CU"两条边界组成，弹性资源池的实际CUs在这个区间里自动伸缩，避免无限制的资源扩容风险。
计算实际CUs时，如果计算结果小于minCU则取minCU值为实际CUs的值；如果计算结果大于maxCU那么取maxCU为实际CUs的值。即实际CUs会始终保持在CU范围的区间内。
- **最小CU（minCU）**
  包周期模式下，购买弹性资源池时设置的最小CU即弹性资源池的包周期CU（规格），可通过"包周期CU变更"调高最小CU。
  **即当弹性资源池规格扩容时，CU范围的最小值与弹性资源池的包周期CU（规格）联动，当弹性资源池的规格变化后，CU范围的最小值会修改为与包周期CU（规格）一致，而最大CU 不变。**
  弹性资源池缩容时，实际CUs不会低于该值，确保总有资源可立即接管作业。
  弹性资源池中所有队列的最小CU数之和需要小于等于弹性资源池的最小CU数。
  
- **最大CU（maxCU）**
  弹性资源池中任意一个队列的最大CU必须小于等于弹性资源池的最大CU。
  弹性资源池至少可以满足弹性资源池中所有队列按最小CU运行，尽量满足队列按最大CU运行。
  
 
#### 包周期CU（规格）
包周期CU（规格）是使用包周期方式购买的CU量，购买弹性资源池时包周期CU（规格）即设置的CU范围的最小CU。
购买弹性资源池时选择的CU范围的最小值即弹性资源池规格。规格是包周期弹性资源池特有的。规格部分以包周期的计费，规格之外的部分按需计费。即将会产生包周期外的按需费用。
队列的最大CU直接影响实际CU分配，如果实际CUs超出规格，超出部分将按需计费。如需降低该场景下的整体成本，则可以通过**弹性资源池规格变更**的操作，扩大弹性资源池的包周期CU（规格）。规格变更成功后，新的包周期CU（规格）范围内所有资源均按照包年包月计费，相比变更前（部分按需计费）更优惠。
详细操作指导请参考[弹性资源池规格变更](https://support.huaweicloud.com/usermanual-dli/dli_01_0524.html)。
图3弹性资源池包年/包月+按需计费模式 \| 成本优化示例   
![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002530430167.png "点击放大")
#### 变更包周期CU（扩容）前的检查动作
请在变更包周期CU（扩容）前检查**实际CUs** 是否**大于等于**变更的目标规格的CUs。
如果实际CUs小于目标CUs，那么需要通过调大队列的maxCU或添加队列来调整实际CUs。
**示例：包年包月弹性资源池，实际CUs：64CUs、CU范围：64CUs - 96CUs、规格64CUs。计划调整目标规格：80CUs。**
操作步骤：
1. 通过调整当前弹性资源池中队列的最大CU或增加队列，以增大弹性资源池的实际CUs为80CUs。 当弹性资源池队列的最大CU的和大于弹性资源池的实际CUs时，会触发弹性资源池的**实际CUs变大**，调整后的实际CUs= min（队列的最大CU和，弹性资源池CU范围最大值）。（调整队列的CU范围在下一个整点生效。）
   
2. 在实际**CUs** 调整为80CUs后，再通过"规格变更"将弹性资源池规格调整为80CUs。（弹性资源池规格变更，在下一个整点生效。）
   执行规格变更后，将弹性资源池规格CU范围的最小CU也会调整为与实际CUs一致。
   
 
#### 弹性资源池扩容
1. 在DLI管理控制台左侧，选择"资源管理 \> 弹性资源池"。
2. 选择需要扩容的弹性资源池，单击"操作"列"更多"中的"包周期CU变更"。
3. 在"包周期CU变更"页面，"变更方式"选择"扩容"，变更数量选择要扩容的CU数量。
   图4规格变更扩容   
   ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002129988904.png) 
4. 确定费用后，单击"提交"。
5. 扩容任务提交后，可以选择"作业管理 \> SQL作业"，查看"SCALE_POOL"类型SQL作业的状态。 如果作业状态为"规格变更中"，表示弹性资源池规格正在扩容中。等待作业状态变为"已成功"表示当前变更操作完成。
   
 
#### 弹性资源池缩容
![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/note_3.0-zh-cn.png)
系统默认最小CU值为16CU，即当弹性资源池的规格为16CU时，不能进行手动缩容。
1. 在DLI管理控制台左侧，选择"资源管理 \> 弹性资源池"。
2. 选择需要缩容的弹性资源池，单击"操作"列"更多"中的"包周期CU变更"。
3. 在"包周期CU变更"页面，"变更方式"选择"缩容"，变更数量选择要缩容的CU数量。
   图5弹性资源池规格缩容   
   ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002165229657.png) 
4. 确定费用后，单击"提交"。
5. 缩容任务提交后，可以选择"作业管理 \> SQL作业"，查看"SCALE_POOL"类型SQL作业的状态。 如果作业状态为"规格变更中"，表示弹性资源池规格正在缩容中。等待作业状态变为"已成功"表示当前变更操作完成。
   
 
