ALM-45643 RocksDB的MemTable大小持续超过阈值
本章节适用于MRS 3.3.0及以后版本。
告警解释
系统以用户配置的告警周期(metrics.reporter.alarm.job.alarm.rocksdb.metrics.duration,默认180s)检查作业RocksDB监控数据,如果作业RocksDB的MemTable大小持续超过用户配置的阈值(metrics.reporter.alarm.job.alarm.rocksdb.get.micros.threshold,默认50000微秒),则发送告警。当作业RocksDB的MemTable大小小于或等于用户配置的阈值,则告警恢复。
告警属性
| 
         告警ID  | 
       
         告警级别  | 
       
         是否可自动清除  | 
      
|---|---|---|
| 
         45643  | 
       
         次要  | 
       
         是  | 
      
告警参数
| 
         参数名称  | 
       
         参数含义  | 
      
|---|---|
| 
         来源  | 
       
         产生告警的集群名称。  | 
      
| 
         服务名  | 
       
         产生告警的服务名称。  | 
      
| 
         应用名  | 
       
         产生告警的应用名称。  | 
      
| 
         角色名  | 
       
         产生告警的角色名称。  | 
      
| 
         任务名  | 
       
         产生告警的作业名称。  | 
      
对系统的影响
Flink作业RocksDB的MemTable大小持续超过阈值,主要反应的是Flink作业的CheckPoint的性能,对FlinkServer本身没有影响。
可能原因
RocksDB的写压力较大。
处理步骤
在TaskManager日志检查是否RocksDB的写压力较大并收集日志
- 使用具有FlinkServer管理操作权限的用户登录FusionInsight Manager。
 - 选择“运维 > 告警 > 告警 > ALM-45643 RocksDB的MemTable大小持续超过阈值”,检查该告警的“定位信息”,查看并记录告警上报的任务名。
 - 选择“集群 > 服务 > Yarn”,单击“ResourceManager WebUI”后的链接进入Yarn原生页面。
 
- 根据告警“定位信息”中的任务名找到异常任务,查找并记录作业的“application ID”,是否可以在Yarn页面上查看到作业日志。
     
     图1 作业的“application ID”
      - 单击失败作业application ID进入作业界面。
     
     
- 单击作业“Logs”列的“Logs”,查看并保存Jobmanager日志。 
       图2 单击“Logs”
        - 单击“Attempt ID”列的ID,单击“Logs”列的“Logs”,查看并保存Taskmanager日志,执行步骤 7。 
       图3 单击“Attempt ID”列的ID
       图4 单击“Logs”
       
 
        使用具有当前Flink作业的管理操作权限的用户登录Manager,选择“集群 > 服务 > Flink”,单击“Flink WebUI”后的链接,单击“作业管理”,在作业的“操作”列选择“更多 > 作业详情”也可查看Taskmanager日志。
 
 - 单击作业“Logs”列的“Logs”,查看并保存Jobmanager日志。 
       
 
若无法在Yarn页面上查看日志,可通过HDFS下载日志。
- 返回Manager,选择“集群 > 服务 > HDFS”,单击“NameNode WebUI”后的链接进入HDFS页面,选择“Utilities > Browse the file system”,在“/tmp/logs/用户名/bucket-logs-tfile/任务application ID的后4位/任务的application ID”目录下载日志。
 
检查是否RocksDB的写压力较大
- 查看作业TaskManager监控日志(搜索标识:RocksDBMetricPrint)中参数“rocksdb.size-all-mem-tables”的值(单位字节)是否大于或等于write buffer的总大小(write buffer的总大小=write_buffer_size*max_write_buffer_number)。
     
     
- 是:在Flink WebUI的作业开发界面,调整如下自定义参数的值并保存后执行步骤 8。 
       
表1 调整自定义参数 参数名称
默认值
说明
state.backend.rocksdb.writebuffer.count
- 2
 - 4:开启SPINNING_DISK_OPTIMIZED_HIGH_MEM
 
- buffer数量
 - 推荐2-10,根据业务情况调整
 
state.backend.rocksdb.writebuffer.size
64MB
- buffer大小
 - 推荐64MB-256MB
 
state.backend.rocksdb.thread.num
- 2
 - 4:开启SPINNING_DISK_OPTIMIZED_HIGH_MEM
 
- Flush线程数,增加线程数以快速将内存数据落盘
 - 增加线程数的同时,需增加vcore的数量
 - 推荐2-10
 
 
- 否:执行步骤 9。
 
 - 是:在Flink WebUI的作业开发界面,调整如下自定义参数的值并保存后执行步骤 8。 
       
 - 重启作业,检查该告警是否恢复。
     
     
- 是,处理完毕。
 - 否,执行步骤 9。
 
 - 联系运维人员,并发送已收集的故障日志信息。
 
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
不涉及。