文档首页/ MapReduce服务 MRS/ 用户指南(安卡拉区域)/ 告警参考/ ALM-45645 RocksDB的Pending Flush持续超过阈值
更新时间:2024-11-29 GMT+08:00

ALM-45645 RocksDB的Pending Flush持续超过阈值

告警解释

系统以用户配置的告警周期(metrics.reporter.alarm.job.alarm.rocksdb.metrics.duration,默认180s)检查作业RocksDB监控数据,如果作业RocksDB的Pending Flush请求数持续达到flush/compaction线程数的n倍,则发送告警。当作业RocksDB的Pending Flush请求数小于或等于阈值,则告警恢复。

  • flush/compaction线程数:参数“state.backend.rocksdb.thread.num”的值,默认值2,开启SPINNING_DISK_OPTIMIZED_HIGH_MEM的默认值为4。
  • n倍:参数“metrics.reporter.alarm.job.alarm.rocksdb.background.jobs.multiplier”的值,默认值2。

告警属性

告警ID

告警级别

告警类型

业务类型

是否可自动清除

45645

次要

业务质量告警

Flink

告警参数

类别

参数名称

参数含义

定位信息

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

应用名

产生告警的应用名称。

角色名

产生告警的角色名称。

任务名

产生告警的作业名称。

附加信息

ThreshHoldValue

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

CurrentValue

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

对系统的影响

Flink作业RocksDB的Pending Flush持续超过阈值,主要反应的是Flink作业的CheckPoint的性能,对FlinkServer本身没有影响。

可能原因

Flink作业RocksDB的Pending Flush请求数量过多。

处理步骤

在TaskManager日志检查是否Pending Flush请求数量过多并收集日志

  1. 使用具有FlinkServer管理操作权限的用户登录FusionInsight Manager。
  2. 选择“运维 > 告警 > 告警 > ALM-45645 RocksDB的Pending Flush持续超过阈值”,检查该告警的“定位信息”,查看并记录告警上报的任务名。
  3. 选择“集群 > 服务 > Yarn”,单击“ResourceManager WebUI”后的链接进入Yarn原生页面。
  1. 根据告警“定位信息”中的任务名找到异常任务,查找并记录作业的“application ID”,是否可以在Yarn页面上查看到作业日志。

    图1 作业的“application ID”
    • 是,执行5
    • 否,执行6

  2. 单击失败作业application ID进入作业界面。

    1. 单击作业“Logs”列的“Logs”,查看并保存Jobmanager日志。
      图2 单击“Logs”
    2. 单击“Attempt ID”列的ID,单击“Logs”列的“Logs”,查看并保存Taskmanager日志,执行7
      图3 单击“Attempt ID”列的ID
      图4 单击“Logs”

      使用具有当前Flink作业的管理操作权限的用户登录Manager,选择“集群 > 服务 > Flink”,单击“Flink WebUI”后的链接,单击“作业管理”,在作业的“操作”列选择“更多 > 作业详情”也可查看Taskmanager日志。

若无法在Yarn页面上查看日志,可通过HDFS下载日志

  1. 返回Manager,选择“集群 > 服务 > HDFS”,单击“NameNode WebUI”后的链接进入HDFS页面,选择“Utilities > Browse the file system”,在“/tmp/logs/用户名/bucket-logs-tfile/任务application ID的后4位/任务的application ID”目录下载日志。

检查是否Pending Flush请求数量过多

  1. 查看作业TaskManager监控日志(搜索标识:RocksDBMetricPrint)中参数“rocksdb.mem-table-flush-pending”的值(单位:个)和“rocksdb.compaction-pending”的值(单位:个)的和是否大于RocksDB线程数的n倍(metrics.reporter.alarm.job.alarm.rocksdb.background.jobs.multiplier,默认值2),如果大于线程数的指定倍数,可增加RocksDB线程数。

    • 是:在Flink WebUI的作业开发界面,调整如下自定义参数的值并保存后执行8
      表1 调整自定义参数

      参数名称

      默认值

      说明

      state.backend.rocksdb.thread.num

      • 2
      • 4:开启SPINNING_DISK_OPTIMIZED_HIGH_MEM
      • Flush线程数,增加线程数以快速将内存数据落盘
      • 增加线程数的同时,需增加vcore的数量
      • 推荐2-10
    • 否:执行9

  2. 重启作业,检查告警是否恢复。

    • 是,处理完毕。
    • 否,执行9

  3. 联系运维人员,并发送已收集的故障日志信息。

告警清除

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

参考信息

不涉及。