
# ALM-14016 DataNode直接内存使用率超过阈值
#### 告警解释
系统每30秒周期性检测HDFS服务直接内存使用状态，当检测到DataNode实例直接内存使用率超出阈值时，产生该告警。
直接内存使用率小于阈值时，告警恢复。
#### 告警属性
| 告警ID  | 告警级别                                                 | 是否自动清除 |
|:---|:---|:---|
| 14016 | 紧急（默认阈值为95%） 重要（默认阈值为90%） | 是      |
   
#### 告警参数
| 参数名称              | 参数含义                  |
|:---|:---|
| 来源                | 产生告警的集群名称。            |
| 服务名               | 产生告警的服务名称。            |
| 角色名               | 产生告警的角色名称。            |
| 主机名               | 产生告警的主机名。             |
| Trigger Condition | 系统当前指标取值满足自定义的告警设置条件。 |
   
#### 对系统的影响
DataNode可用直接内存不足，可能会造成内存溢出导致服务崩溃。
#### 可能原因
该节点DataNode实例直接内存使用率过大，或配置的直接内存不合理，导致使用率超过阈值。
#### 处理步骤
**检查直接内存使用率。**
1. 在FusionInsight Manager首页，选择"运维 \> 告警 \> 告警"，单击告警"ALM-14016 DataNode直接内存使用率超过阈值"所在行的下拉菜单，在"定位信息"中查看告警上报的角色名并确定实例的IP地址。
2. 在FusionInsight Manager首页，选择"集群 \> *待操作集群的名称* \> 服务 \> HDFS \> 实例 \> DataNode（对应上报告警实例IP地址）"，单击图表区域右上角的下拉菜单，选择"定制 \> 资源"，勾选"DataNode内存使用详情"。查看直接内存使用情况。
3. 查看DataNode使用的直接内存是否已达到DataNode设定的最大直接内存的90%(默认阈值)。 
   - 是，执行[步骤 4]。
   
   - 否，执行[步骤 8]。
   
   
   
   
4. 在FusionInsight Manager首页，选择"集群 \> *待操作集群的名称* \> 服务 \> HDFS \> 配置 \> 全部配置 \> DataNode \> 系统"。查看"GC_OPTS"参数中是否存在"-XX:MaxDirectMemorySize"。
   
   - 是，执行[步骤 5]。
   
   - 否，执行[步骤 6]。
   
   
   
   
5. 调整"-XX:MaxDirectMemorySize"大小。
   
   1. 在"GC_OPTS"中查看 "-Xmx"配置的大小，并判断节点内存是否够用。
      ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
      节点内存是否够用可根据实际环境进行判断，例如可使用以下方法：
      以**root** 用户登录告警上报的实例的IP地址，执行**free -g** 命令，查看"free"列的"Mem"值即为节点可用内存，如下示例中节点可用内存为4G。
      ```
      total        used        free      shared  buff/cache   available
      Mem:            112          48           4          10          58          46
      ......
      ```
      如果节点可用内存大于或等于"-Xmx"的值，则节点内存够用。如果节点可用内存小于"-Xmx"的值，则节点内存不够用。
      - 是，修改"-XX:MaxDirectMemorySize"的配置值与"-Xmx"配置值相同。
      
      - 否，适量调大"-XX:MaxDirectMemorySize"的大小，但取值不得超过节点可用内存。
       
   
   2. 保存配置，重启DataNode实例。
      ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
      重启期间服务业务可能受损或中断，建议选择业务低峰期操作。
      
   
   
   
   
6. 查看告警信息，是否存在告警"ALM-14008 DataNode堆内存使用率超过阈值"。
   
   - 是，参考[ALM-14008 DataNode堆内存使用率超过阈值](https://support.huaweicloud.com/usermanual-mrs/ALM-14008.html)进行处理。
   
   - 否，执行[步骤 7]。
   
   
   
   
7. 观察界面告警是否清除。
   
   - 是，处理完毕。
   
   - 否，执行[步骤 8]。
   
   
   
   
**收集故障信息。**
8. 在FusionInsight Manager首页，选择"运维 \> 日志 \> 下载"。
9. 在"服务"中勾选待操作集群的"DataNode"。
10. 单击右上角的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0263895680.png)设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后10分钟，单击"下载"。
11. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
无。
