
# ALM-19033 RegionServer的RPC读队列数超过阈值
#### 告警解释
系统每30秒周期性检测每个HBase服务的RegionServer实例的RPC读队列待处理任务个数，当检测到某个RegionServer上的RPC读队列待处理任务个数连续10次超出阈值时产生该告警。
当RegionServer实例的RPC读队列待处理任务个数小于或等于阈值时，告警消除。
本章节仅适用于MRS 3.3.1-LTS及之后版本。
#### 告警属性
| 告警ID  | 告警级别                                                                                 | 是否可自动清除 |
|:---|:---|:---|
| 19033 | 紧急（默认阈值为2000） 重要（默认阈值为1600） | 是       |
   
#### 告警参数
| 类别   | 参数名称      | 参数含义       |
|:---|:---|:---|
| 定位信息 | 来源        | 产生告警的集群名称。 |
| 定位信息 | 服务名       | 产生告警的服务名称。 |
| 定位信息 | 角色名       | 产生告警的角色名称。 |
| 定位信息 | 主机名       | 产生告警的主机名。  |
| 附加信息 | Threshold | 产生告警的阈值。   |
   
#### 对系统的影响
RegionServer RPC读队列数超过阈值，请求队列堆积会导致读取请求的响应时间增加，对于时延敏感型业务，可能会导致大量的业务读取请求超时。
#### 可能原因
- RegionServer堆内存配置不合理。
- RegionServer配置不合理。
- RegionServer的Region分布不均，存在读取热点。
- 慢盘故障。
 
#### 处理步骤
1. 在FusionInsight Manager首页，选择"运维 \> 告警 \> 告警"，查看"告警ID"为"19033"的告警的"定位信息"中上报该告警的服务实例和主机名。
**检查RegionServer堆内存配置。**
2. 在FusionInsight Manager的告警列表中，查看[步骤 1]中的告警实例是否有"HBase服务进程堆内存使用率超过阈值"告警产生。
   
   - 是，执行[步骤 3]。
   
   - 否，执行[步骤 5]。
   
   
   
   
3. 参考"ALM-19008 HBase服务进程堆内存使用率超过阈值"的处理步骤处理该故障。
4. 等待几分钟后，在告警列表中查看该告警是否清除。 
   - 是，处理完毕。
   
   - 否，执行[步骤 5]。
   
   
   
   
5. 在FusionInsight Manager首页，选择"集群 \> 服务 \> HBase \> 图表"，在"图表分类"中选择"GC"，查看GC次数和GC时间监控是否异常。
   
   - 是，执行[步骤 6]。
   
   - 否，执行[步骤 9]。
   
   
   
   

6. 单击"配置"，在搜索框中搜索"GC_OPTS"，在RegionServer所在节点内存允许范围内，适当调大RegionServer该参数的"Xmx"值，建议最大值不超过31GB，单击"保存"保存配置。
   
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   可在FusionInsight Manager首页，选择"集群 \> 服务 \> HBase \> 实例"，查看并记录所有RegionServer所在节点的主机名。返回FusionInsight Manager首页，单击"主机"，在主机列表中查看所有RegionServer所在节点的"内存(GB)"列，查看各主机的剩余内存，按最小的剩余内存来调大"Xmx"值，且调大后该节点的已使用内存不超过80%。
   
   
7. 单击"概览"，选择"更多 \> 重启服务"，重启HBase服务。 
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/notice_3.0-zh-cn.png)
   HBase服务重启期间，HBase服务的业务无法使用，包括数据读写、表相关操作、访问HBase WebUI界面等。
   
   
8. 等待几分钟后，在告警列表中查看该告警是否清除。 
   - 是，处理完毕。
   
   - 否，执行[步骤 9]。
   
   
   
   
**检查RegionServer配置。**
9. 在FusionInsight Manager首页，选择"集群 \> 服务 \> HBase \> 配置 \> 全部配置"，查看"hbase.bucketcache.size"配置是否合理，该值越大读缓存越大，有助于提升读取性能，在节点剩余内存前提下适当调大该配置，单击"保存"保存配置。单击"概览"，选择"更多 \> 重启服务"，重启HBase服务。
10. 等待几分钟后，在告警列表中查看该告警是否清除。 
    - 是，处理完毕。
    
    - 否，执行[步骤 11]。
    
    
    
    

11. 在HBase概览界面，单击"HMaster Web UI"右侧超链接进入HBase WebUI页面，在"Tables"区域的"User Tables"页签单击用户当前正在大量读的表名称，在"Table"页签的"Table Schema"区域查看该表的"BLOCKCACHE"值是否为"false"。
    
    - 是，执行[步骤 12]。
    
    - 否，执行[步骤 14]。
    
    
    ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001836861357.png "点击放大")
    
    
12. 使用**omm** 用户登录HBase客户端所在节点，执行以下命令修改[步骤 11]表列族的BLOCKCACHE参数值为"true"：
    
    **cd** *客户端安装目录*
    **source bigdata_env**
    **kinit** *归属于supergroup用户组或具备Global的Admin权限的用户*（集群未启用Kerberos认证（普通模式）请跳过该操作）
    **hbase shell**
    **alter** **'** *表名* **'** **, {NAME =\> '** *列族名* **', BLOCKCACHE =\>** **true}**
    执行以下命令检查列族的BLOCKCACHE参数是否已更改为"true"：
    **describe '** *表名* **'**
    
    
13. 等待几分钟后，在告警列表中查看该告警是否清除。 
    - 是，处理完毕。
    
    - 否，执行[步骤 14]。
    
    
    
    
**检查RegionServer的Region分布是否均匀。**
14. 在FusionInsight Manager首页，选择"集群 \> 服务 \> HBase"，单击"HMaster(主)"，进入HBase WebUI页面，查看Region Servers区域"Base Stats"页签的"Num.Regions"列上Region的个数分布是否均衡。
    
    - 是，执行[步骤 20]。
    
    - 否，执行[步骤 15]。
    
    
    ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000001834799133.png "点击放大")
    
    
15. 以**omm**用户登录故障RegionServer节点。
16. 进入客户端安装目录，设置环境变量。 
    **cd** *客户端安装目录*
    **source bigdata_env**
    **kinit** *归属于supergroup用户组或具备Global的Admin权限的用户*（集群未启用Kerberos认证（普通模式）请跳过该操作）
    
    
17. 执行以下命令查看负载均衡功能是否打开。 
    **hbase shell**
    **balancer_enabled**
    若执行结果为"true"则表示已打开负载均衡功能。
    - 是，执行[步骤 20]。
    
    - 否，执行[步骤 18]。
     
    
    
18. 执行以下命令打开负载均衡功能，并确认是否成功打开。
    
    **balance_switch true**
    **balancer_enabled**
    执行**balancer** 命令手动触发负载均衡。
    ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
    建议打开和手动触发负载均衡操作在业务低峰期进行。
    
    

19. 等待几分钟后，在告警列表中查看该告警是否清除。 
    - 是，处理完毕。
    
    - 否，执行[步骤 20]。
    
    
    
    
**检查慢盘故障。**
20. 查看中[步骤 1]上报告警节点是否存在"慢盘故障"或"磁盘不可用"告警。
    
    - 是，执行[步骤 21]。
    
    - 否，执行[步骤 23]。
    
    
    
    

21. 参考"ALM-12033 慢盘故障"、"ALM-12063 磁盘不可用"的处理步骤处理该故障。
22. 等待几分钟后，在告警列表中查看该告警是否清除。 
    - 是，处理完毕。
    
    - 否，执行[步骤 23]。
    
    
    
    
**收集故障信息**
23. 在FusionInsight Manager首页，选择"集群 \> 服务 \> HBase \> 图表"，在"图表分类"选择"IO"，查看"Pread最大耗时-所有实例"和"Read最大耗时-所有实例"监控值（正常值不超过100ms）。
24. 在FusionInsight Manager界面，选择"运维 \> 日志 \> 下载"。
25. 在"服务"中勾选待操作集群的"HBase"。
26. 单击右上角的时间编辑按钮，设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后10分钟，单击"下载"。
27. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
不涉及。
