
# ALM-45588 IoTDBServer直接内存使用率超过阈值
#### 告警解释
系统每60秒周期性检测IoTDBServer进程直接内存使用状态，当连续5次检测到IoTDBServer实例直接内存使用率超出阈值（最大内存的90%）时，产生该告警。当IoTDBServer直接内存使用率小于或等于阈值时，告警恢复。
#### 告警属性
| 告警ID  | 告警级别 | 是否自动清除 |
|:---|:---|:---|
| 45588 | 重要   | 是      |
   
#### 告警参数
| 参数名称              | 参数含义                  |
|:---|:---|
| 来源                | 产生告警的集群名称。            |
| 服务名               | 产生告警的服务名称。            |
| 角色名               | 产生告警的角色名称。            |
| 主机名               | 产生告警的主机名。             |
| Trigger Condition | 系统当前指标取值满足自定义的告警设置条件。 |
   
#### 对系统的影响
直接内存溢出可能导致服务不可用，可能影响该IoTDBServer进程无法正常提供数据读写服务。
#### 可能原因
节点IoTDBServer实例直接内存使用率过大，或配置的直接内存不合理，导致使用率超过阈值。
#### 处理步骤
**检查直接内存使用率。**
1. 在FusionInsight Manager首页，选择"运维 \> 告警 \> 告警"，弹出告警页面，选中"告警ID"为"45588"的告警，在该页面的告警详情里查看"定位信息"中的角色名并确定实例的IP地址。
2. 选择"集群 \> *待操作集群的名称* \> 服务 \> IoTDB \> 实例"，单击告警上报的IoTDBServer，进入实例"概览"页面。单击图表区域右上角的下拉菜单，选择"定制 \> 内存 \> IoTDBServer直接内存使用率"，单击"确定"。
3. 查看IoTDBServer使用的直接内存是否已达到IoTDBServer设定的阈值（默认值为最大直接内存的90%）。 
   - 是，执行[步骤 4]。
   
   - 否，执行[步骤 6]。
   
   
   
   
4. 在FusionInsight Manager首页，选择"集群 \> *待操作集群的名称* \> 服务 \> IoTDB \> 配置 "，单击"全部配置"， 选择"IoTDBServer \> 系统"，将参数"GC_OPTS"中"-XX:MaxDirectMemorySize"的值根据实际情况调大，并保存配置。
   
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 出现该告警时，说明当前IoTDBServer设置的直接内存无法满足当前IoTDBServer进程所需的直接内存。
   
   - 建议将参数"GC_OPTS"中"-XX:MaxDirectMemorySize"的值设置为"IoTDBServer进程使用的直接内存大小"的两倍（可根据实际业务场景进行修改）。
   
   - IoTDBServer进程使用的直接内存大小可以通过"定制 \> 内存 \> IoTDBServer直接内存资源状况"获取。若"GC_OPTS"中没有参数"-XX:MaxDirectMemorySize"，则需进行手动添加。
    
   
   
5. 重新启动受影响的服务或实例，观察界面告警是否清除。 
   - 是，处理完毕。
   
   - 否，执行[步骤 6]。
   
   
   
   
**收集故障信息。**
6. 在FusionInsight Manager界面，选择"运维 \> 日志 \> 下载"。
7. 在"服务"框中勾选待操作集群的"IoTDBServer"。
8. 单击右上角的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001113546898.png)设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后10分钟，单击"下载"。
9. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
无。
