ALM-16006 Hive服务进程直接内存使用超出阈值
告警解释
系统每30秒周期性检测Hive直接内存使用率,并把实际的Hive直接内存使用率和阈值相比较。当Hive直接内存使用率超出阈值(默认为最大直接内存的95%)时产生该告警。
用户可通过“运维 > 告警 > 阈值设置 > 待操作集群的名称 > Hive”修改阈值。
当Hive直接内存使用率小于或等于阈值时,告警恢复。
告警属性
告警ID |
告警级别 |
是否自动清除 |
---|---|---|
16006 |
重要 |
是 |
告警参数
参数名称 |
参数含义 |
---|---|
来源 |
产生告警的集群名称。 |
服务名 |
产生告警的服务名称。 |
角色名 |
产生告警的角色名称。 |
主机名 |
产生告警的主机名。 |
Trigger Condition |
系统当前指标取值满足自定义的告警设置条件。 |
对系统的影响
Hive直接内存使用率过高,会影响Hive任务运行的性能,甚至造成内存溢出导致Hive服务不可用。
可能原因
该节点Hive实例直接内存使用量过大,或分配的直接内存不合理,导致使用率超过阈值。
处理步骤
检查直接内存使用率。
- 在FusionInsight Manager首页,选择“运维 > 告警 > 告警”,选中“告警ID”为“16006”的告警,查看“定位信息”中的角色名并确定实例的IP地址。
- 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > Hive > 实例”,单击告警上报的HiveServer,进入实例“概览”页面,单击图表区域右上角的下拉菜单,选择“定制 > CPU和内存”,勾选“HiveServer内存使用率统计” ,单击“确定”,查看HiveServer进程使用的直接内存是否已达到HiveServer进程设定的最大直接内存的阈值(默认95%)。
图1 勾选HiveServer内存使用率统计
- 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > Hive > 实例”,单击告警上报的MetaStore,进入实例“概览”页面,单击图表区域右上角的下拉菜单,选择“定制 > CPU和内存”,勾选“MetaStore内存使用率统计” ,单击“确定”,查看MetaStore进程使用的直接内存是否已达到MetaStore进程设定的最大直接内存的阈值(默认95%)。
图2 勾选MetaStore内存使用率统计
- 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > Hive > 配置”,选择“全部配置”, 选择“HiveServer/MetaStore > JVM”,将“HIVE_GC_OPTS/METASTORE_GC_OPTS”参数中“-XX:MaxDirectMemorySize”的值根据如下建议进行调整,并单击“保存”。
- HiveServer的GC参数配置建议
- 建议将“-XX:MaxDirectMemorySize”值设置为“-Xmx”值的1/8,比如:当“-Xmx”设置为8G时,“-XX:MaxDirectMemorySize”设置为1024M,“-Xmx”设置为4G时,“-XX:MaxDirectMemorySize”设置为512M。并且建议“-XX:MaxDirectMemorySize”值不小于512M。
- MetaServer的GC参数配置建议
- 建议将“-XX:MaxDirectMemorySize”值设置为“-Xmx”值的1/8,比如:当“-Xmx”设置为8G时,“-XX:MaxDirectMemorySize”设置为1024M,“-Xmx”设置为4G时,“-XX:MaxDirectMemorySize”设置为512M。并且建议“-XX:MaxDirectMemorySize”值不小于512M。
- HiveServer的GC参数配置建议
- 选择“更多 > 重启服务”重启服务。
在Hive服务重启期间,正在重启的实例无法对外提供服务,且对应实例上正在执行的SQL任务可能失败。
- 观察界面告警是否清除。
- 是,处理完毕。
- 否,执行7。
收集故障信息。
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
无。