
# ALM-45642 RocksDB持续触发写限流
#### 告警解释
系统以用户配置的告警周期（metrics.reporter.alarm.job.alarm.rocksdb.metrics.duration，默认180s）检查作业RocksDB监控数据，如果作业RocksDB持续触发写限流，即作业写RocksDB的速率不为0时则发送告警。当作业写RocksDB的速率为0时，则告警恢复。
作业写RocksDB的速率：参数"rocksdb.actual-delayed-write-rate"的值，"0"表示不限速，其他值表示限速值。
本章节仅适用于MRS 3.3.0-LTS至MRS 3.6.0-LTS.1版本。
#### 告警属性
| 告警ID  | 告警级别 | 是否可自动清除 |
|:---|:---|:---|
| 45642 | 次要   | 是       |
   
#### 告警参数
| 参数名称 | 参数含义       |
|:---|:---|
| 来源   | 产生告警的集群名称。 |
| 服务名  | 产生告警的服务名称。 |
| 应用名  | 产生告警的应用名称。 |
| 角色名  | 产生告警的角色名称。 |
| 任务名  | 产生告警的作业名称。 |
   
#### 对系统的影响
Flink作业RocksDB持续触发写限流，主要反应的是Flink作业的CheckPoint的性能，对Flinkserver本身没有影响。
#### 可能原因
Flink作业写RocksDB的速率不为0时触发写限流，导致限流的可能原因：
- MemTable太多引起写限流或写停止，伴随有"ALM-45643 RocksDB的MemTable大小持续超过阈值"的告警。
- Level0层的SST文件数据太大，伴随有"ALM-45644 RocksDB的Level0层SST文件数持续超过阈值"的告警。
- 预估Compaction的大小超过阈值，伴随有"ALM-45647 RocksDB的Pending Compaction预估总大小持续超过阈值"的告警。
 
#### 处理步骤
**检查是否MemTable太多引起写限流或写停止**
1. 在FusionInsight Manager首页，选择"运维 \> 告警 \> 告警"。
2. 在告警列表中，查看是否存在告警"ALM-45643 RocksDB的MemTable大小持续超过阈值"。 
   - 是，执行[步骤 3]。
   
   - 否，执行[步骤 5]。
   
   
   
   
3. 参考[ALM-45643 RocksDB的MemTable大小持续超过阈值](https://support.huaweicloud.com/usermanual-mrs/ALM-45643.html)章节处理对应的告警。
4. ALM-45643告警全部恢复后，等待几分钟，检查本告警是否恢复。 
   - 是，处理完毕。
   
   - 否，执行[步骤 5]。
   
   
   
   
**检查是否Level0的SST文件数据太大** **引起写限流或写停止**
5. 在FusionInsight Manager首页，选择"运维 \> 告警 \> 告警"。
6. 在告警列表中，查看是否存在告警"ALM-45644 RocksDB的Level0层SST文件数持续超过阈值"。 
   - 是，执行[步骤 7]。
   
   - 否，执行[步骤 9]。
   
   
   
   
7. 参考[ALM-45644 RocksDB的Level0层SST文件数持续超过阈值](https://support.huaweicloud.com/usermanual-mrs/ALM-45644.html)章节处理对应的告警。
8. ALM-45644告警全部恢复后，等待几分钟，检查本告警是否恢复。 
   - 是，处理完毕。
   
   - 否，执行[步骤 9]。
   
   
   
   
**检查是否预估Compaction的大小超过阈值** **引起写限流或写停止**
9. 在告警列表中，查看是否存在告警"ALM-45647 RocksDB的Pending Compaction预估总大小持续超过阈值"。
   
   - 是，执行[步骤 10]。
   
   - 否，执行[步骤 12]。
   
   
   
   
10. 参考[ALM-45647 RocksDB的Pending Compaction预估总大小持续超过阈值](https://support.huaweicloud.com/usermanual-mrs/ALM-45647.html)章节处理对应的告警。
11. ALM-45647告警全部恢复后，等待几分钟，检查本告警是否恢复。 
    - 是，处理完毕。
    
    - 否，执行[步骤 12]。
    
    
    
    
**收集故障信息**
12. 使用具有FlinkServer管理操作权限的用户登录FusionInsight Manager。
13. 选择"运维 \> 告警 \> 告警 \> ALM-45642 RocksDB持续触发写限流"，检查该告警的"定位信息"，查看并记录告警上报的任务名。
14. 选择"集群 \> 服务 \> Yarn"，单击"ResourceManager WebUI"后的链接进入Yarn原生页面。

15. 根据告警"定位信息"中的任务名找到异常任务，查找并记录作业的"application ID"，是否可以在Yarn原生页面上查看到作业日志。 
    图1作业的"application ID"   
    ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001723013141.png "点击放大")
    - 是，执行[步骤 16]。
    
    - 否，执行[步骤 18]。
    
    
    
    
16. 单击失败作业application ID进入作业界面。
    
    1. 单击作业"Logs"列的"Logs"，查看并保存Jobmanager日志。
       图2单击"Logs"   
       ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001675093600.png "点击放大") 
    
    2. 单击"Attempt ID"列的ID，单击"Logs"列的"Logs"，查看并保存TaskManager日志。
       图3单击"Attempt ID"列的ID   
       ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001674933892.png "点击放大")
       图4单击"Logs"   
       ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001723133033.png "点击放大")
       ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
       使用具有FlinkServer管理操作权限的用户登录Manager，选择"集群 \> 服务 \> Flink"，单击"Flink WebUI"后的链接，单击"作业管理"，在作业的"操作"列选择"更多 \> 作业详情"也可查看TaskManager日志。
       
    
    
    
    
17. 查看作业日志进行故障修复，或联系运维人员，并发送已收集的故障日志信息。操作结束。
**若无法在Yarn页面上查看日志，可通过HDFS下载日志。**
18. 返回Manager，选择"集群 \> 服务 \> HDFS"，单击"NameNode WebUI"后的链接进入HDFS页面，选择"Utilities \> Browse the file system"，在"/tmp/logs/*用户名* /bucket-logs-tfile/*任务application ID的后4位/任务的application ID*"目录下载日志。
19. 查看失败作业日志进行故障修复，或联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
不涉及。
