
# ALM-13004 ZooKeeper堆内存使用率超过阈值
#### 告警解释
系统每60秒周期性检测ZooKeeper服务堆内存使用状态，当检测到ZooKeeper实例堆内存使用率超出阈值时产生该告警。
堆内存使用率小于阈值时，告警恢复。
#### 告警属性
| 告警ID  | 告警级别                                                 | 是否自动清除 |
|:---|:---|:---|
| 13004 | 紧急（默认阈值为95%） 重要（默认阈值为85%） | 是      |
   
#### 告警参数
| 参数名称              | 参数含义                  |
|:---|:---|
| 来源                | 产生告警的集群名称。            |
| 服务名               | 产生告警的服务名称。            |
| 角色名               | 产生告警的角色名称。            |
| 主机名               | 产生告警的主机名。             |
| Trigger Condition | 系统当前指标取值满足自定义的告警设置条件。 |
   
#### 对系统的影响
ZooKeeper可用内存不足，可能会造成内存溢出导致服务崩溃，可能导致上游组件（例如Yarn、Flink、Spark等）业务运行失败。
#### 可能原因
该节点ZooKeeper实例堆内存使用率过大，或配置的堆内存不合理，导致使用率超过阈值。
#### 处理步骤
**检查堆内存使用率。**
1. 在FusionInsight Manager首页，选择"运维 \> 告警 \> 告警"，单击告警"ZooKeeper堆内存使用率超过阈值"所在行的下拉菜单，在定位信息中确认告警上报的主机名所在的节点IP地址。
2. 在FusionInsight Manager首页，选择"集群 \> *待操作集群的名称* \> 服务 \> ZooKeeper \> 实例"，单击对应IP地址的"角色"列的"quorumpeer"。单击图表区域右上角的下拉菜单，选择"定制 \> CPU 和内存"，勾选"ZooKeeper堆内存与直接内存使用率"，单击"确定"，查看堆内存使用情况。
3. 查看ZooKeeper使用的堆内存是否已达到ZooKeeper设定的最大堆内存的95%。 
   - 是，执行[步骤 4]。
   
   - 否，执行[步骤 7]。
   
   
   
   
4. 在FusionInsight Manager首页，选择"集群 \> *待操作集群的名称* \> 服务 \> ZooKeeper \> 配置 \> 全部配置 \> quorumpeer \> 系统"。将GC_OPTS参数中-Xmx的值根据实际情况调大，具体调整方案如下：
   
   1. 单击"实例"，选择对应IP地址的"角色"列的"quorumpeer"，单击图表区域右上角的下拉菜单，选择"定制 \> CPU 和内存"，勾选"ZooKeeper堆内存与直接内存资源状况"，单击"确定"，查看ZooKeeper实际使用的堆内存大小。
   
   2. 根据堆内存实际使用量，修改GC_OPTS参数中的-Xmx值，该值一般为Zookeeper数据容量的2倍。例如当前ZooKeeper堆内存使用达到2G，则GC_OPTS建议配置为"-Xms4G -Xmx4G -XX:NewSize=512M -XX:MaxNewSize=512M -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M -XX:CMSFullGCsBeforeCompaction=1"。
   
   
   
   
5. 保存配置，并重启ZooKeeper服务。 
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   服务在重启过程中将不可用。另外，依赖该服务的上层服务也将受到影响。
   
   
6. 观察界面告警是否清除？ 
   - 是，处理完毕。
   
   - 否，执行[步骤 7]。
   
   
   
   
**收集故障信息。**
7. 在FusionInsight Manager界面，选择"运维 \> 日志 \> 下载"。
8. 在"服务"中勾选待操作集群的"ZooKeeper"。
9. 单击右上角的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0263895382.png)设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后10分钟，单击"下载"。
10. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
无。
