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

4. 根据告警"定位信息"中的任务名找到异常任务，查找并记录作业的"application ID"，是否可以在Yarn页面上查看到作业日志。 
   图1作业的"application ID"   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001723013161.png "点击放大")   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001675093624.png "点击放大")
   - 是，执行[步骤 5]。
   
   - 否，执行[步骤 6]。
   
   
   
   
5. 单击失败作业application ID进入作业界面。
   
   1. 单击作业"Logs"列的"Logs"，查看并保存Jobmanager日志。
      图2单击"Logs"   
      ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001674933912.png "点击放大") 
   
   2. 单击"Attempt ID"列的ID，单击"Logs"列的"Logs"，查看并保存TaskManager日志，执行[步骤 7]。
      图3单击"Attempt ID"列的ID   
      ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001723133053.png "点击放大")
      图4单击"Logs"   
      ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001723013169.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的Compaction预估数据量过大**
7. 查看作业TaskManager监控日志（搜索标识：RocksDBMetricPrint）中参数"rocksdb.estimate-pending-compaction-bytes"（单位字节）的值是否大于或等于soft/hard-pending-compaction的大小（参数"state.backend.rocksdb.soft-pending-compaction-bytes-limit"和"state.backend.rocksdb.hard-pending-compaction-bytes-limit"的值）。
   
   - 是：在Flink WebUI的作业开发界面，调整如下自定义参数的值并保存后执行[步骤 8]。
     表1调整自定义参数 
     | 参数名称                                                      | 默认值   | 说明                                                                                                                                                                                               |
     |:---|:---|:---|
     | state.backend.rocksdb.soft-pending-compaction-bytes-limit | 64GB  | - 当pending的compaction超过该阈值，写限流  - 推荐64GB-512GB   |
     | state.backend.rocksdb.hard-pending-compaction-bytes-limit | 256GB | - 当pending的compaction超过该阈值，写停止  - 推荐64GB-512GB   |
        
     
   
   - 否：执行[步骤 9]。
   
   
   
   
8. 重启作业，检查告警是否恢复。
   
   - 是，处理完毕。
   
   - 否，执行[步骤 9]。
   
   
   
   
9. 联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
不涉及。
