hbase scan超时设置_HBase运维 | 用arthas神器来诊断HBase异常进程

1. 异常突起 HBase集群的某一个RegionServer的CPU使用率突然飙升到百分之百,单独重启该RegionServer之后,CPU的负载依旧会逐渐攀上顶峰。多次重启集群之后,CPU满载的现象依然会复现,且会持续居高不下,慢慢地该RegionServer就会宕掉,慢慢地HBase集群就完犊子了。2. 异常之上的现象 CDH监控页面来看,除CPU之外的几乎所有核心指标都是正常的,...
摘要由CSDN通过智能技术生成

2be9fd6ede4e7164a5fcaefd2b350ade.gif

1. 异常突起

HBase集群的某一个RegionServer的CPU使用率突然飙升到百分之百,单独重启该RegionServer之后,CPU的负载依旧会逐渐攀上顶峰。多次重启集群之后,CPU满载的现象依然会复现,且会持续居高不下,慢慢地该RegionServer就会宕掉,慢慢地HBase集群就完犊子了。

2. 异常之上的现象

CDH监控页面来看,除CPU之外的几乎所有核心指标都是正常的,磁盘和网络IO都很低,内存更是充足,压缩队列,刷新队列也是正常的。

011db0c87a352a6dcb76c2b41a83108b.png
image-20200522180604571

普罗米修斯的监控也是类似这样的,就不贴图了。

监控指标里的数字,只能直观地告诉我们现象,不能告诉我们异常的起因。因此我们的第二反应是看日志。

35fdbf4fa0e804fcf60348bb95d12816.png
企业微信截图_fcda6a1d-bd14-4d1f-b926-fda0f7564012

与此同时,日志中还有很多类似这样的干扰输出。

f8e1092dd263090cd2f7e7a4a8e8cd2e.png
image-20200526174709177

后来发现这样的输出只是一些无关紧要的信息,对分析问题没有任何帮助,甚至会干扰我们对问题的定位。

但是,日志中大量scan responseTooSlow的警告信息,似乎在告诉我们,HBase的Server内部正在发生着大量耗时的scan操作,这也许就是CPU负载高的元凶。可是,由于各种因素的作用,我们当时的关注点并没有在这个上面,因为这样的信息,我们在历史的时间段里也频繁撞见。

3. 初识arthas

监控和日志都不能让我们百分百确定CPU负载高是由哪些操作引起的,我们用top命令也只能看到HBase这个进程消耗了很多CPU,就像下图看到的这样。

bc34218289eb9c227eda5b1c9f1ee16b.png
image-20200526180130359

如果不做进一步分析,你仍然不知道,问题出现在HBase相关进程下的哪些执行线程。Java中分析进程的命令,可以使用jstackjstat gcutil等。但是,今天要介绍的主角不是这俩,甚至不是async-profiler,而是arthasasync-profiler虽然也是一个很强大的工具,但是arthas包含了它,且功能更强大,堪称神器。

arthas很早以前就听说过,起初以为它只能用来分析WEB应用,例如Spring Boot,这两天仔细翻看其官方文档之后,才觉得自己是多么的无知。arthas的相关介绍和入门使用,请参考其文档,它的官方文档比任何第三方资料都详细和友好。

  • https://github.com/alibaba/arthas

  • 阿尔萨斯官方文档

  • https://github.com/jvm-profiling-tools/async-profiler

4. 用arthas来分析HBase的异常进程

4.1 运行arthas

java -jar /data/arthas/arthas-boot.jar  --target-ip 0.0.0.0
  • --target-ip 默认127.0.0.1,此处赋值为0.0.0.0是为了使用webconsole

4.2 arthas运行成功的界面

6138b8c38551abe0b1dd4b89fb4f5708.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值