我们在hbase使用过程,经常遇到hbase慢问题,我们在生产中也是遇到这个,尤其是大量业务袭来的时候,数据量一上来,hbase读写慢问题非常明显。很多时候,是通过日志和监控观察某个节点压力大,重启对应的region server,这样可以短时解决hbase慢过程中region server服务夯死的问题,但是重启后,本地化率降低,查询还是变慢,出现了夯死、重启、本地化率低的死循环。于是我们分析hbase读写缓存情况,发现有可以改善的地方。
首先我们调整了datanode的jvm,
|
|
可以看出,old使用了近9个G。
我们以日志中的ResponseTooSlow作为慢日志数量的参考,捞取了全集群的各节点的region server的慢日志。
在调查过程中,发现有个别主机swap开起来了,关闭个别主机的swap,分析hbase慢日志, swap关闭前慢日志一天出现3200次,关闭后一天出现1900次,有明显的降低,但是还是会有集群整体慢的情况。
继续分析日志,