
# ALM-18022 Yarn队列资源不足
#### 告警解释
- MRS 3.3.1之前版本：告警模块按60秒周期检测Yarn队列资源，当队列可用资源或队列AM（ApplicationMaster）可用资源不足时，产生该告警。 当可用资源充足时，该告警自动消除。
  
- MRS 3.3.1及之后版本：告警模块按周期（"alarm.resource.lack.check.times.threshold"参数控制，单位：分钟）检测Yarn队列资源，当队列可用资源或队列AM（ApplicationMaster）可用资源不足时：
  - 如果"alarm.resource.lack.enable"参数配置为"true"，且"alarm.resource.lack.enable.queues"为空，则允许所有队列触发当前告警。
  
  - 如果"alarm.resource.lack.enable"参数配置为"true"，且"alarm.resource.lack.enable.queues"配置了队列名称，则仅允许指定的队列上报当前告警。
  
  - 如果"alarm.resource.lack.enable"参数配置为"false"，则不允许所有队列上报当前告警。
  
  
  以上参数可以在Manager页面选择"集群 \> 服务 \> Yarn \> 配置 \> 全部配置"，搜索对应参数进行配置。
  当可用资源充足时，该告警自动消除。
  
 
#### 告警属性
| 告警ID  | 告警级别 | 是否自动清除 |
|:---|:---|:---|
| 18022 | 次要   | 是      |
   
#### 告警参数
| 参数名称              | 参数含义                  |
|:---|:---|
| 来源                | 产生告警的集群名称。            |
| 队列名               | 产生告警的队列名。             |
| 队列指标名             | 产生告警的队列指标名。           |
| Trigger Condition | 系统当前指标取值满足自定义的告警设置条件。 |
   
#### 对系统的影响
- 应用任务结束时间变长。
- 新应用提交后长时间无法运行。
 
#### 可能原因
- 告警上报机制需要调整。（仅适用于MRS 3.3.1及之后版本 ）
- NodeManager节点资源过小。
- 队列最大资源容量设置过小。
- AM最大资源百分比设置过小。
 
#### 处理步骤
**调整告警上报机制**（仅适用于MRS 3.3.1及之后版本 ）
1. 请根据实际业务情况，确认是否所有队列都需要上报当前告警： 
   - 所有队列都不需要上报告警：登录FusionInsight Manager界面，选择"集群 \> 服务 \> Yarn \> 配置 \> 全部配置"，搜索并修改"alarm.resource.lack.enable"参数值为"false"，保存配置。
   
   - 仅部分队列需要上报告警：登录FusionInsight Manager界面，选择"集群 \> 服务 \> Yarn \> 配置 \> 全部配置"，搜索并修改"alarm.resource.lack.enable.queues"参数值为需要上报当前告警的队列名称，保存配置。
   
   - 所有队列都需要上报告警：执行[步骤 3]。
   
   
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 等待5分钟，查看该告警是否消除。 
   - 是，处理完毕。
   
   - 否，执行[步骤 3]。
   
   
   
   
**检查NodeManager节点资源。**
3. 在FusionInsight Manager界面，选择"运维 \> 告警 \> 告警"，弹出告警页面。
4. 查看"Yarn队列资源不足"告警详情中的"定位信息"，查看"定位信息"是否为"队列名=root;队列指标名=Memory"或"队列名=root;队列指标名=vCores"。 
   - 是，执行[步骤 5]。
   
   - 否，执行[步骤 6]。
   
   
   
   
5. 出现该定位信息表示Yarn集群内存或CPU不足，登录NodeManager节点并查询节点可用内存和CPU。
   
   集群节点登录可参考[登录MRS集群节点](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0083.html)。
   查询节点可用内存：
   ```
   free -g
   ```
   查询节点可用CPU：
   ```
   cat /proc/cpuinfo
   ```
   根据查询到的资源，在FusionInsight Manager界面增大Yarn NodeManager的资源参数"yarn.nodemanager.resource.memory-mb"和"yarn.nodemanager.resource.cpu-vcores"。
   重启NodeManager实例，查看该告警是否消除。
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   NodeManager重启过程中，提交到该节点的Container可能会重试到其他节点。
   - 是，处理完毕。
   
   - 否，执行[步骤 6]。
   
   
   
   
**检查队列最大资源容量设置**。
6. 查看告警详情中"定位信息"为"队列名=\<租户队列名\>;队列指标名=Memory"或"队列名=\<租户队列名\>;队列指标名=vCores"，然后查看告警详情中"附加信息"是否包含"available Memory ="或"available vCores ="。
   
   - 是，执行[步骤 7]。
   
   - 否，执行[步骤 9]。
   
   
   
   
7. 出现该附加信息表示该租户队列内存或者CPU不足，选择"租户资源 \> 动态资源计划 \> 资源分布策略"，调大"最大资源容量"的值，查看该告警是否消除。
   
   - 是，处理完毕。
   
   - 否，执行[步骤 8]。
   
   
   
   
8. 选择"集群 \> 服务 \> Yarn \> 配置 \> 全部配置"，输入搜索关键字"threshold"，单击"ResourceManager"，调整如下参数阈值：
   
   如果"附加信息"中包含"available Memory ="，调整"yarn.queue.memory.alarm.threshold"的阈值使其小于"附加信息"中的"available Memory ="的值。
   如果"附加信息"中包含"available vCores ="，调整"yarn.queue.vcore.alarm.threshold"的阈值使其小于"附加信息"中的"available vCores ="的值。
   等待5分钟，查看该告警是否消除。
   - 是，处理完毕。
   
   - 否，执行[步骤 11]。
    
   
   
**检查AM最大资源百分比**。
9. 查看"附加信息"包含"available AmMemory ="或"available AmvCores ="，表示该租户队列的ApplicationMaster内存和CPU不足，选择"租户资源 \> 动态资源计划 \> 队列配置"，增大"AM最大资源百分比"，查看该告警是否消除。
   
   - 是，处理完毕。
   
   - 否，执行[步骤 10]。
   
   
   
   
10. 选择"集群 \> 服务 \> Yarn \> 配置 \> 全部配置"，输入搜索关键字"threshold"，单击"ResourceManager"，调整如下参数阈值：
    
    如果"附加信息"包含"available AmMemory ="，调整"yarn.am.memory.alarm.threshold"的阈值使其小于"附加信息"中的"available AmMemory ="的值。
    如果"附加信息"包含"available AmvCores ="，调整"yarn.am.vcore.alarm.threshold"的阈值使其小于"附加信息"中的"available AmvCores ="的值。
    等待5分钟，查看该告警是否消除。
    - 是，处理完毕。
    
    - 否，执行[步骤 11]。
     
    
    
**收集故障信息。**
11. 在主集群的FusionInsight Manager界面，选择"运维 \> 日志 \> 下载"。
12. 在"服务"中勾选待操作集群的"Yarn"。
13. 单击右上角的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0263895445.png)设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后10分钟，单击"下载"。
14. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
无。
