
# ALM-45643 RocksDB的MemTable大小持续超过阈值
#### 告警解释
系统以用户配置的告警周期（metrics.reporter.alarm.job.alarm.rocksdb.metrics.duration，默认180s）检查作业RocksDB监控数据，如果作业RocksDB的MemTable大小持续超过用户配置的阈值（metrics.reporter.alarm.job.alarm.rocksdb.get.micros.threshold，默认50000微秒），则发送告警。当作业RocksDB的MemTable大小小于或等于用户配置的阈值，则告警恢复。
本章节仅适用于MRS 3.3.0-LTS至MRS 3.6.0-LTS.1版本。
#### 告警属性
| 告警ID  | 告警级别 | 是否可自动清除 |
|:---|:---|:---|
| 45643 | 次要   | 是       |
   
#### 告警参数
| 参数名称 | 参数含义       |
|:---|:---|
| 来源   | 产生告警的集群名称。 |
| 服务名  | 产生告警的服务名称。 |
| 应用名  | 产生告警的应用名称。 |
| 角色名  | 产生告警的角色名称。 |
| 任务名  | 产生告警的作业名称。 |
   
#### 对系统的影响
Flink作业RocksDB的MemTable大小持续超过阈值，主要反应的是Flink作业的CheckPoint的性能，对FlinkServer本身没有影响。
#### 可能原因
RocksDB的写压力较大。
#### 处理步骤
**在TaskManager日志检查是否RocksDB的写压力较大** **并收集日志**
1. 使用具有FlinkServer管理操作权限的用户登录FusionInsight Manager。
2. 选择"运维 \> 告警 \> 告警 \> ALM-45643 RocksDB的MemTable大小持续超过阈值"，检查该告警的"定位信息"，查看并记录告警上报的任务名。
3. 选择"集群 \> 服务 \> Yarn"，单击"ResourceManager WebUI"后的链接进入Yarn原生页面。

4. 根据告警"定位信息"中的任务名找到异常任务，查找并记录作业的"application ID"，是否可以在Yarn页面上查看到作业日志。 
   图1作业的"application ID"   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001723013145.png "点击放大")
   - 是，执行[步骤 5]。
   
   - 否，执行[步骤 6]。
   
   
   
   
5. 单击失败作业application ID进入作业界面。
   
   1. 单击作业"Logs"列的"Logs"，查看并保存Jobmanager日志。
      图2单击"Logs"   
      ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001675093604.png "点击放大") 
   
   2. 单击"Attempt ID"列的ID，单击"Logs"列的"Logs"，查看并保存TaskManager日志，执行[步骤 7]。
      图3单击"Attempt ID"列的ID   
      ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001674933896.png "点击放大")
      图4单击"Logs"   
      ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001723133037.png "点击放大")
      ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
      使用具有当前Flink作业的管理操作权限的用户登录Manager，选择"集群 \> 服务 \> Flink"，单击"Flink WebUI"后的链接，单击"作业管理"，在作业的"操作"列选择"更多 \> 作业详情"也可查看TaskManager日志。
      
   
   
   
   
**若无法在Yarn页面上查看日志，可通过HDFS下载日志。**
6. 返回Manager，选择"集群 \> 服务 \> HDFS"，单击"NameNode WebUI"后的链接进入HDFS页面，选择"Utilities \> Browse the file system"，在"/tmp/logs/*用户名* /bucket-logs-tfile/*任务application ID的后4位/任务的application ID*"目录下载日志。
**检查是否RocksDB的写压力较大**
7. 查看作业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]。
   
   
   
   
8. 重启作业，检查该告警是否恢复。
   
   - 是，处理完毕。
   
   - 否，执行[步骤 9]。
   
   
   
   
9. 联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
不涉及。
