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

ALM-45649 RocksDB的Get P95耗时持续超过阈值

告警解释

系统以用户配置的告警周期(metrics.reporter.alarm.job.alarm.rocksdb.metrics.duration,默认180s)检查作业RocksDB监控数据,如果作业RocksDB的Get P95耗时达到用户配置的阈值(metrics.reporter.alarm.job.alarm.rocksdb.get.micros.threshold,默认值50000,单位微秒),则发送告警。当作业RocksDB的Get P95耗时时间小于或等于阈值,则告警恢复。

告警属性

告警ID

告警级别

告警类型

业务类型

是否可自动清除

45649

次要

业务质量告警

Flink

告警参数

类别

参数名称

参数含义

定位信息

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

应用名

产生告警的应用名称。

任务名

产生告警的作业名称。

用户名

产生告警的用户名称。

附加信息

ThreshHoldValue

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

CurrentValue

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

对系统的影响

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

可能原因

Flink作业RocksDB的Get P95耗时持续超过阈值的可能原因:

  • Level0层SST文件数太多,导致查询慢,伴随有“ALM-45644 RocksDB的Level0层SST文件数持续超过阈值”的告警。
  • 缓存命中率低于60%,导致block cache频繁的换入换出。

处理步骤

检查是否Level0层SST文件数太多

  1. 在FusionInsight Manager首页,选择“运维 > 告警 > 告警”。
  2. 在告警列表中,查看是否存在告警“ALM-45644 RocksDB的Level0层SST文件数持续超过阈值”。

    • 是,执行3
    • 否,执行5

  3. 参考“ALM-45644 RocksDB的Level0层SST文件数持续超过阈值”章节处理对应的告警。
  4. ALM-45644告警全部恢复后,等待几分钟,检查本告警是否恢复。

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

在TaskManager日志检查缓存命中率并收集日志

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

    图1 作业的“application ID”
    • 是,执行9
    • 否,执行10

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

    1. 单击作业“Logs”列的“Logs”,查看并保存Jobmanager日志。
      图2 单击“Logs”
    2. 单击“Attempt ID”列的ID,单击“Logs”列的“Logs”,查看并保存Taskmanager日志,执行11
      图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”目录下载日志。

检查是否缓存命中率过低

  1. 查看作业TaskManager监控日志(搜索标识:RocksDBMetricPrint)中参数“rocksdb.block.cache.hit”(cache命中)和“rocksdb.block.cache.miss”(cache未命中)的值,通过如下公式计算命中率是否少于60%。

    缓存命中率公式:rocksdb.block.cache.hit/(rocksdb.block.cache.hit+rocksdb.block.cache.miss)
    • 是:在Flink WebUI的作业开发界面,调整如下自定义参数的值并保存后执行12
      表1 调整自定义参数

      参数名称

      默认值

      说明

      state.backend.rocksdb.block.cache-size

      • 8MB
      • 256MB:开启SPINNING_DISK_OPTIMIZED_HIGH_MEM
      • Cache缓存大小
      • 推荐8MB-1GB

      state.backend.rocksdb.block.blocksize

      • 4KB
      • 128KB:开启SPINNING_DISK_OPTIMIZED_HIGH_MEM
      • Block大小
      • 推荐4KB-256KB

      state.backend.rocksdb.use-bloom-filter

      false

      • 是否开启索引提速,若为true,则每个新创建的SST文件都将包含一个Bloom过滤器
      • 推荐true
    • 否:执行13

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

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

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

告警清除

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

参考信息

不涉及。