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

11. 根据告警"定位信息"中的任务名找到异常任务，查找并记录作业的"application ID"，是否可以在Yarn页面上查看到作业日志。 
    图1作业的"application ID"   
    ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001723013149.png "点击放大")
    - 是，执行[步骤 12]。
    
    - 否，执行[步骤 13]。
    
    
    
    
12. 单击失败作业application ID进入作业界面。
    
    1. 单击作业"Logs"列的"Logs"，查看并保存Jobmanager日志。
       图2单击"Logs"   
       ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001675093608.png "点击放大") 
    
    2. 单击"Attempt ID"列的ID，单击"Logs"列的"Logs"，查看并保存TaskManager日志，执行[步骤 14]。
       图3单击"Attempt ID"列的ID   
       ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001674933900.png "点击放大")
       图4单击"Logs"   
       ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001723133041.png "点击放大")
       ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
       使用具有当前Flink作业的管理操作权限的用户登录Manager，选择"集群 \> 服务 \> Flink"，单击"Flink WebUI"后的链接，单击"作业管理"，在作业的"操作"列选择"更多 \> 作业详情"也可查看TaskManager日志。
       
    
    
    
    
**若无法在Yarn页面上查看日志，可通过HDFS下载日志**
13. 返回Manager，选择"集群 \> 服务 \> HDFS"，单击"NameNode WebUI"后的链接进入HDFS页面，选择"Utilities \> Browse the file system"，在"/tmp/logs/*用户名* /bucket-logs-tfile/*任务application ID的后4位/任务的application ID*"目录下载日志。
**检查是否Level0层SST文件数** **过多**
14. 查看作业TaskManager监控日志（搜索标识：RocksDBMetricPrint）中参数"rocksdb.num-files-at-level0"的值（单位个数）是否大于或等于"state.backend.rocksdb.level0_slowdown_writes_trigger"或"state.backend.rocksdb.level0_stop_writes_trigger"的值。
    
    - 是，在Flink WebUI的作业开发界面，调整如下自定义参数的值并保存后执行[步骤 15]。
      表1调整自定义参数 
      | 参数名称                                                 | 默认值 | 说明                                                                                                                                                                                |
      |:---|:---|:---|
      | state.backend.rocksdb.level0_slowdown_writes_trigger | 20  | - Level0触发slowdown的文件数。  - 推荐20\~30      |
      | state.backend.rocksdb.level0_stop_writes_trigger     | 36  | - Level0触发stop的最大文件数。  - 推荐36\~46   |
         
      
    
    - 否，执行[步骤 16]。
    
    
    
    
15. 重启作业，检查告警是否恢复。
    
    - 是，处理完毕。
    
    - 否，执行[步骤 16]。
    
    
    
    
16. 联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
不涉及。
