硬件故障以致Hbase RegionServer CPU飚高
硬件故障导致Hbase RegionServer CPU飚高
场景介绍
国庆期间Hbase集群有一台RegionServer a02机器的内存故障原因导致下线,集群在少一台的情况下运行正常,节后a02机器内存故障修复后重新加入集群提供服务,几乎同时发现集群另外一台a04的CPU使用率高居不下, 按照常理分析集群恢复至最初状态,应该会运行良好,实际上却是a04的CPU使用率一路飚高。
问题初步排查
- Region数据排查,集群Region数量均衡,并无发现异常
- GC日志分析,发现Parnew频率有增加,1天20-30次,与其他机器比偏高
- RegionServer日志排查,也没有发现异常输出
- 配合网卡、磁盘IO等也没有发现什么端倪,RPC处理队列变大
调整思路
软件没问题,是不是硬件有问题,同一批机器硬件型号一致,极有可能内存或其他硬件也有问题。经过运维同学排查,这台机器的内存的确有问题,更换内存后CPU使用率一泻千里,与其他机器CPU使用率持平,最终确认为硬件故障。
分析GC的收获
通过几个月的GC日志分析,发现8月初GC频率一下子密集起来,与其他RegionServer的Gc情况对比,发现症状时间点相同,下一步需要验证这个点发生了什么重大事件。通常的处理方案有两种调优GC以及扩容集群分摊压力。
GC调优方案
1、JVM参数调优
2、启用MemStoreChunkPool达到优化GC目的
官网介绍:https://issues.apache.org/jira/browse/HBASE-8163
MSLAB提升HBASE GC性能:http://blog.****.net/map_lixiupeng/article/details/40914567