OOM的俩种情况---主动kill/被动kill
创始人
2024-05-27 05:48:07
0

出现OOM, 有两种处理方式:1. 主动Kill; 2. 被动Kill

例:HBase Region Server OOM定位问题复盘

现象

在HBase资源隔离项目中,对测试集群进行压测时,发现region server会出现崩溃的情况,单机请求量从>200到~50每秒都有可能出现。

当压测的同时,进行在rsgroup间转移server或者table时出现概率更高。

Region server死掉后,webUI上可见许多Region in Transition错误,重启region server及master后才能恢复。

经查,在CM的日志页没有任何日志,只显示unknown error。

登上物理机,查看region server的日志也没有发现。

系统日志(/var/log/messages)也看不到可能的OOM日志。

 

 

根本原因

最终发现还是因为OOM被干掉了,因为5台机器中有3台region server的heap size只设置了50M(后加入的两台是32G)

在/tmp下面生成了转储文件

改大到32G后,再进行压测没有出现崩溃问题了。

如何更好地发现?

之前因为没有日志,所以感觉无从下手,后来找到/tmp下的hprof文件才发现配置的问题。

进程崩溃,没有日志 –> 可以怀疑出现了OOM。

出现OOM, 有两种处理方式:1. 主动Kill; 2. 被动Kill

(1)   主动Kill

比如这次的场景就是,启动region server时告诉JVM内存限制是50M, 超过50M就主动kill掉。

这种情况不是系统kill, 是JVM的操作,所以不会记录到系统日志(/var/log/messages)中。

这种情况是会产生下面的日志的:

 

但是比较坑的是,上述日志不是出现在RegionServer的日志文件里,而是在out文件里。

又因为region server会自动拉起,CM页面上的out内容被新的进程冲掉,所以无法在CM上看到这些内容。

CDH把这些日志藏在这个路径里,很难找到:

/var/run/cloudera-scm-agent/process/*-hbase-REGIONSERVER/logs/stdout.log

其中的*为一个数字,不是挂掉的进程PID, 可以根据目录的时间戳和崩溃时间对应下。

 

(2)   被动Kill

如果是被系统杀掉,发生的场景会是RegionServer没有OOM,但是操作系统内存不够用了,于是OS会选择kill一些进程。

看/var/log/messages, 会发现如下日志:

kernel: Out of memory: Kill process 38551 (java) score 501 or sacrifice child

kernel: Killed process 38551, UID 483, (java) total-vm:17538500kB, anon-rss:16420056kB, file-rss:28kB

kernel: java invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0

上述日志表明:RegionServer进程(38551)被kill了。

注意:total-vm:17538500kB, anon-rss:16420056kB应该是它占用的内存,而不是已经使用的内存。

如果没有搞清楚这个区别,你可能会以为RegionServer已经超过max-heap-size了,那么kill就应该变成主动了。

如何避免?

  1. 测试前检查核心配置

不能因为之前在用就掉以轻心。

总结

因为内存资源配置原因,导致hbase集群压测时出现崩溃异常,并且看不到有效日志。本文总结了OOM出现后的排查手段,以及避免方法。

相关内容

热门资讯

iOSapp移植到安卓系统,i... 你有没有想过,那些在iOS上让你爱不释手的app,是不是也能在安卓系统上大放异彩呢?今天,就让我带你...
现在安卓随便换系统,探索个性化... 你知道吗?现在安卓手机换系统简直就像换衣服一样简单!没错,就是那种随时随地、随心所欲的感觉。今天,就...
安卓系统安装按钮灰色,探究原因... 最近发现了一个让人头疼的小问题,那就是安卓手机的安装按钮突然变成了灰色,这可真是让人摸不着头脑。你知...
安卓7.1.1操作系统,系统特... 你知道吗?最近我在手机上发现了一个超级酷的新玩意儿——安卓7.1.1操作系统!这可不是什么小打小闹的...
安卓os系统怎么设置,并使用`... 你有没有发现,你的安卓手机有时候就像一个不听话的小孩子,有时候设置起来真是让人头疼呢?别急,今天就来...
安卓降低系统版本5.1,探索安... 你知道吗?最近安卓系统又来了一次大动作,竟然把系统版本给降到了5.1!这可真是让人有点摸不着头脑,不...
解放安卓系统被保护,解放安卓系... 你有没有想过,你的安卓手机其实可以更加自由地呼吸呢?是的,你没听错,我说的就是解放安卓系统被保护的束...
校务帮安卓系统下载,便捷校园生... 你有没有想过,你的手机里装了一个神奇的助手——校务帮安卓系统下载?没错,就是那个能让你轻松管理学校事...
安卓系统没有拼多多,拼多多崛起... 你知道吗?最近我在手机上发现了一个小小的秘密,那就是安卓系统里竟然没有拼多多这个应用!这可真是让我大...
甜城麻将安卓系统,解锁全新麻将... 你有没有听说过那个超级火的甜城麻将安卓系统?没错,就是那个让无数麻将爱好者为之疯狂的软件!今天,就让...
安卓系统卸载的软件,深度揭秘卸... 手机里的软件越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么在安卓系统里卸载那些不再需要的软...
安卓系统推荐好游戏,畅享指尖乐... 手机里的游戏可是咱们休闲娱乐的好伙伴,尤其是安卓系统的用户,选择面那可是相当广呢!今天,就让我来给你...
王者安卓系统怎么卖,揭秘如何轻... 你有没有听说最近王者安卓系统的火爆程度?没错,就是那个让无数玩家沉迷其中的王者荣耀!今天,我就来给你...
安卓开发系统内置证书,基于安卓... 你有没有想过,你的安卓手机里那些神秘的内置证书,它们到底是个啥玩意儿?别急,今天就来给你揭秘这些隐藏...
荣耀安装安卓原生系统,深度体验... 你知道吗?最近荣耀手机界可是掀起了一股热潮,那就是——荣耀安装安卓原生系统!这可不是什么小打小闹,而...
安卓13小米系统,创新功能与流... 你知道吗?最近安卓13系统可谓是风头无两,各大手机厂商纷纷推出自家的新版系统,其中小米的安卓13系统...
鸿蒙系统底层安卓10,融合与创... 你知道吗?最近手机圈里可是热闹非凡呢!华为的新操作系统鸿蒙系统,竟然在底层采用了安卓10的架构。这可...
安卓系统辅助在哪关闭,轻松关闭... 你有没有发现,安卓系统的辅助功能真是贴心到不行啊!不过,有时候这些功能太多,用起来有点乱糟糟的。别急...
安卓系统outlook邮件设置... 你有没有发现,自从你把手机升级到了安卓系统,邮件管理变得有点复杂呢?别急,今天就来手把手教你如何设置...
安卓系统停止向华为,自主操作系... 你知道吗?最近科技圈可是炸开了锅!安卓系统突然宣布停止向华为提供技术支持,这可不仅仅是两家公司之间的...