
# 弹性资源池CU设置
CU设置主要是为了控制弹性资源池扩缩容的最大最小CU范围，避免无限制的资源扩容风险。
例如，当前弹性资源池CU设置的最大CU为256CU，并且该弹性资源池添加了2个队列，2个队列扩缩容策略最小CU数为64CU，这时如果该弹性资源池再添加一个队列并且该队列最小CU为256CU时，因为受到CU最大设置的控制，该队列不能添加到该弹性资源池。
#### 弹性资源池相关基本概念
本节介绍弹性资源池实际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范围的最小值不能大于当前实际CUs。
例如，想要把CU范围的最小值调高（比如从64CUs 调到80CUs），那么必须先确保实际CUs ≥ 80。
调整实际CUs的方法请参考[弹性资源池扩容或缩容](https://support.huaweicloud.com/usermanual-dli/dli_01_0686.html)。
#### 注意事项
- 在全天的任意一个时间段内，弹性资源池中所有队列的最小CU数之和需要小于等于弹性资源池的最小CU数。
- 在全天的任意一个时间段内，弹性资源池中任意一个队列的最大CU必须小于等于弹性资源池的最大CU。
- 弹性资源池创建后，调整最小CU时，最小CU需小于等于弹性资源池实际CUs值，否则会修改失败。
- 调整队列的CU范围、弹性资源池规格变更、弹性资源池的CU设置，均在下一个整点生效。
- 通过增加队列调整弹性资源池的实际CUs，立即生效。
 
#### CU设置操作步骤
1. 在左侧导航栏单击"资源管理 \> 弹性资源池"，可进入弹性资源池管理页面。
2. 选择要操作的弹性资源池，在"操作"列，单击"更多 \> CU设置"。
3. 在"CU设置"界面，"CU范围"参数中，左边为最小CU，右边为最大CU，根据情况分别设置。单击"确定"完成设置操作。
图4弹性资源池CU设置   
![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002352344322.png "点击放大")
- [示例：提高CU范围的最小值]
  - **基本原理：**
    弹性资源池的CU范围的最小值必须小于等于实际CUs。如果想要将弹性资源池CU范围的最小值调高至超过当前实际CUs，必须先通过扩容调大实际CUs。
    调整CU范围的最小值时，如果目标CU大于CU范围最大值时，请先调大弹性资源池的最大CU。
    本例介绍目标CU小于等于CU范围的最大值的调整方法。
    1. 通过调整当前弹性资源池中队列的最大CU或增加队列，以增大弹性资源池的实际CUs，
    
    2. 再通过CU设置，调整CU范围的最小值等于目标CUs。
    
    
    图5提高弹性资源池CU范围的最小值的流程图   
    ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002419407321.png "点击放大") 
  
  - **示例：**
    - **初始状态如下：**
      - 弹性资源池实际CUs：64CUs
      
      - 弹性资源池CU范围：64CUs - 96CUs
       
    
    - **目标：** 调整CU范围调整为 80CUs - 96CUs
      - **操作步骤：**
        1. 调大队列最大CU或增加队列，使队列最大CU总和为80CUs，触发扩容。
        
        2. 扩容后，实际CUs=max{（min\[sum（队列maxCU），弹性资源池maxCU\]）, 弹性资源池minCU} = max{（min(80, 96) ），64CUs}=80CUs。
        
        3. 通过"CU设置"调整CU范围为：80CUs - 96CUs。
         
       
     
   
- [示例：降低CU范围的最大值]
  如果设置了队列的CU范围的最大值等于弹性资源池的CU范围的最大值，那么调小弹性资源池CU范围最大值时需要先调小队列的CU范围最大值。然后再通过CU设置调小弹性资源池CU范围最大值。
  请注意：本例弹性资源池目标CU范围的最大值要大于当前弹性资源池CU范围的最小值，否则还需要先降低弹性资源池CU范围的最小值。
  结合实际CUs的计算公式我们可以发现，调小队列的CU范围的最大值、调小弹性资源池CU范围最大值都会影响实际CUs的变化。请参考[实际CUs计算公式](https://support.huaweicloud.com/usermanual-dli/dli_01_0686.html#dli_01_0686__section128132517425)。
  **实际CUs=** **max{（min\[sum（队列maxCU），弹性资源池maxCU\]）, 弹性资源池minCU}**
  所以当调小弹性资源池的CU范围的最大值后，可能会存在一段时间实际CUs大于弹性资源池的CU范围的最大值，但是在操作完成后的下一个整点，系统会按照实际CUs的计算公式重新计算实际CUs的大小，从而触发弹性资源池缩容。
  图6降低弹性资源池CU范围的最大值的流程图   
  ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002385808950.png "点击放大")
  - **示例**
    - **初始状态如下：**
      - 弹性资源池实际CUs：96CUs
      
      - 弹性资源池CU范围：64CUs - 128CUs
      
      - 队列CU范围最大值：128CUs
       
    
    - **目标：** 调整CU范围调整为 64CUs - 80CUs
      - **操作步骤：**
        1. 调小队列最大CU为80CUs。
        
        2. 通过"CU设置"调整CU范围：64CUs - 80CUs。
        
        3. 下一个整点触发弹性资源池缩容，实际CUs=max{（min\[sum（队列maxCU），弹性资源池maxCU\]）= max{80CUs，64CUs}。
         
       
     
   
- [示例：降低CU范围的最小值]
  - **包年/包月弹性资源池** **降低CU范围的最小值的基本原理**
    包年包月计费模式的弹性资源池，在购买时，弹性资源池的CU范围的最小值和实际CUs都等于资源池的规格。
    弹性资源池CU范围的最小值的约束条件：
    - 弹性资源池CU范围的最小值大于等于所有队列CU范围最小值的和。
    
    - 弹性资源池CU范围最小值不能小于弹性资源池的规格。
    
    
    因此调小CU范围最小值的操作步骤如下：
    1. 先调小队列的CU范围的最小值。
    
    2. 变更弹性资源池的规格等于弹性资源池的目标CU范围的最小值。
    
    3. 调小弹性资源池CU范围最小值。
    
    
    ![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/caution_3.0-zh-cn.png)
    如果变更后的弹性资源池的规格小于实际CUs，那么规格的部分按包周期计费，（实际CUs-规格）的部分按需计费。为了满足该场景下更优惠的计费，推荐您通过降低队列的最大CUs或删除队列或调小弹性资源池的最大CU，将弹性资源池的规格与实际CUs一致，则所有实际CUs按包周期计费，整体相比原来更优惠。详细操作指导请参考[弹性资源池规格变更](https://support.huaweicloud.com/usermanual-dli/dli_01_0524.html)。
    图7降低弹性资源池CU范围的最小值的流程图（包年/包月）   
    ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002385963846.png "点击放大") 
  
  - **按需计费的弹性资源池** **降低CU范围的最小值的基本原理**
    弹性资源池CU范围的最小值的约束条件：弹性资源池CU范围的最小值大于等于所有队列CU范围最小值的和。
    因此调小CU范围最小值的操作步骤如下：
    1. 先调小队列的CU范围的最小值。
    
    2. 调小弹性资源池CU范围最小值。
    
    
    图8降低弹性资源池CU范围的最小值的流程图（按需）   
    ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002385961806.png "点击放大") 
  
  - **包年包月弹性资源池** **示例** **：**
    - **初始状态如下：**
      - 弹性资源池实际CUs：64CUs
      
      - 弹性资源池CU范围：64CUs - 128CUs
      
      - 弹性资源池规格：64CUs
      
      - 队列CU范围最小值的和：64CUs
       
    
    - **目标：**调整CU范围调整为 32CUs - 128CUs
    
    - **操作步骤：**
      - 调小队列最小CU的和为32CUs。
      
      - 变更弹性资源池的规格为32CUs。
      
      - 通过"CU设置"调整CU范围最小值：32CUs - 128CUs。
      
      - 此时实际CUs大于弹性资源池规格，其中规格部分的32CUs按包周期计费，（实际CUs-规格）后剩余的32CUs按需计费。
       
     
  
  
  
  - **按需计费弹性资源池** **示例** **：**
    - **初始状态如下：**
      - 弹性资源池实际CUs：64CUs
      
      - 弹性资源池CU范围：64CUs - 128CUs
      
      - 队列CU范围最小值的和：64CUs
       
    
    - **目标：**调整CU范围调整为 32CUs - 128CUs
    
    - **操作步骤：**
      1. 调小队列最小CU的和为32CUs。
      
      2. 通过"CU设置"调整CU范围最小值：32CUs - 128CUs。
       
     
   
