更新时间:2022-05-19 GMT+08:00
分享

ALM-14022 NameNode RPC队列平均时间超过阈值

告警解释

系统每30秒周期性检测NameNode的RPC队列平均时间,并把实际的NameNode的RPC队列平均时间和阈值(默认为200ms)相比较。当检测到NameNode的RPC队列平均时间连续多次(默认为10次)超出阈值范围时,产生该告警。

用户可通过“运维 > 告警 > 阈值设置 > 待操作集群的名称 > HDFS”修改阈值。

如果平滑次数为1,NameNode的RPC队列平均时间小于或等于阈值时,告警恢复;如果平滑次数大于1,NameNode的RPC队列平均时间小于或等于阈值的90%时,告警恢复。

告警属性

告警ID

告警级别

是否自动清除

14022

重要

告警参数

参数名称

参数含义

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

NameService名

产生告警的NameService名称。

Trigger condition

系统当前指标取值满足自定义的告警设置条件。

对系统的影响

NameNode无法及时处理来自HDFS客户端、依赖于HDFS的上层服务、DataNode等的RPC请求,表现为访问HDFS服务的业务运行缓慢,严重时会导致HDFS服务不可用。

可能原因

  • NameNode节点的CPU性能不足,导致NameNode无法及时处理消息。
  • NameNode所设置的内存太小,频繁Full GC造成JVM卡顿。
  • NameNode配置参数不合理,导致NameNode无法充分利用机器性能。
  • HDFS的业务访问量太大,超过了NameNode的负载能力。

处理步骤

获取该告警的信息。

  1. 在FusionInsight Manager首页,选择“运维 > 告警 > 告警”,在告警列表中找到该告警。
  2. 单击该告警,查看下面的告警详情。从“产生时间”可知该告警的触发时间;从“定位信息”中的“主机名”信息可知发出该告警的NameNode节点主机名;从“定位信息”中的NameServiceName信息可知发出该告警的NameService名称。

查看是否阈值设置过低。

  1. 查看依赖于HDFS的业务的运行状态是否正常运行。查看是否存在运行慢、执行任务超时的情况。

    • 是,执行8
    • 否,执行4

  2. 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > HDFS”,单击图表区域右上角的下拉菜单,单击“定制”,在弹出的对话框中选择“主NameNode RPC队列平均时间”,单击“确定”

    图1 主NameNode RPC队列平均时间

  3. 查看“主NameNode RPC队列平均时间”监控中,获取发出告警的NameService的当前的监控值。
  4. 在FusionInsight Manager首页,选择“运维 > 告警 > 阈值设置 > 待操作集群的名称 > HDFS”,找到“主NameNode RPC队列平均时间”,单击default规则中“操作”栏中的“修改”,修改“阈值”为当前监控值的150%。单击“确定”,保存新阈值。
  5. 等待1分钟,查看该告警是否自动消除。

    • 是,处理结束。
    • 否,执行8

查看NameNode节点的CPU性能是否不足。

  1. 在FusionInsight Manager首页,选择“运维 > 告警 > 告警”,查看该NameNode节点是否有“ALM-12016 CPU使用率超过阈值”告警。

    • 是,执行9
    • 否,执行11

  2. 按照“ALM-12016 CPU使用率超过阈值”告警处理文档,处理该告警。
  3. 处理完12016告警后,等待10分钟,查看14022告警是否自动消除。

    • 是,处理结束。
    • 否,执行11

查看NameNode节点的内存是否设置过小。

  1. 在FusionInsight Manager首页,选择“运维 > 告警 > 告警”,查看是否有该NameNode节点的“ALM-14007 HDFS NameNode堆内存使用率超过阈值”告警。

    • 是,执行12
    • 否,执行14

  2. 按照“ALM-14007 HDFS NameNode堆内存使用率超过阈值”告警处理文档,处理该告警。
  3. 处理完14007告警后,等待10分钟,查看14022告警是否自动消除。

    • 是,处理结束。
    • 否,执行14

查看该NameNode配置参数是否合理。

  1. 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > HDFS > 配置”,搜索配置项“dfs.namenode.handler.count”,查看其值。如果值小于或等于128,则设置为128;如果大于128但小于192,则设置为192。
  2. 搜索配置项“ipc.server.read.threadpool.size”,查看其值。如果值小于5,则设置为5。
  3. 单击“保存”,单击“确定”
  4. 在HDFS的“实例”页面,先勾选发出该告警的NameService的备NameNode,在“更多”中单击“重启实例”,输入密码后单击“确定”,等待备NameNode启动完毕。
  5. 在HDFS的“实例”页面,先勾选发出该告警的NameService的主NameNode,在“更多”中单击“重启实例”,输入密码后单击“确定”,等待主NameNode启动完毕。
  6. 等待1小时,查看该告警是否自动消除。

    • 是,处理结束。
    • 否,执行20

查看HDFS负载变化情况,适当降低HDFS负载。

  1. 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > HDFS”,单击图表区域右上角的下拉菜单,选择“定制”,单击“RPC”,在弹出的对话框中选择“NameNode RPC队列平均时间”,单击“确定”

    图2 主NameNode RPC队列平均时间

  2. 单击,进入监控详细信息界面。
  3. 设置监控显示的时间段,从告警产生的时间的前5天开始,到告警产生时刻结束。单击“确定”按钮。
  4. “NameNode RPC队列平均时间”监控中,查看该监控是否有开始急剧增加的时间点。

    • 是,执行24
    • 否,执行27

  5. 确认并排查在该时间点,是否有新增任务大量访问HDFS,确认该任务是否可以调优,减少对HDFS的访问。
  6. 如果在该时间点有执行Balancer,则可以停止Balancer,或指定节点执行Balancer任务,来降低对HDFS的负载。
  7. 等待1小时,查看该告警是否自动消除。

    • 是,处理结束。
    • 否,执行27

收集故障信息。

  1. 在FusionInsight Manager首页,选择“运维 > 日志 > 下载”。
  2. 在“服务”勾选待操作集群的HDFS节点信息。
  3. 单击右上角的设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后10分钟,单击“下载”。
  4. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

无。

分享:

    相关文档

    相关产品

close