这里有关于oom-killer的介绍:/@rchint/analyzing-issues-caused-by-oom-killer-2933a13e3e09。我的场景是我的tomcat app 经常被这个机制干掉,但是观察了很久,也没发现heap有OOM的迹象。然后查看kernal log发现
Out of memory: Kill process 25403 (java) score 843 or sacrifice child
基本意思就是运行的java 进程被os 意外杀掉,杀掉的原因操作系统默认允许进程申请高出系统实际内存,但发现内存不够是,按照一种方式计算出需要被干掉的进程。我的应用是一个tomcat app,占用了 机器60 %的内存,所以首当其冲被干掉。
这是jvm参数配置
-Xms8g -Xmx18g -Xmn6g -XX:SurvivorRatio=4 - XX:MaxGCPauseMillis=500 -XX:+UseAdaptiveSizePolicy -XX:MaxPermSize=400m -XX:PermSize=200m - XX:MaxTenuringThreshold=25 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/cronusapp/heapdump.hrpof -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=10 -Xloggc:/home/cronusapp/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCCause -XX:+UseGCOverheadLimit -XX:+PrintTenuringDistribution
起初以为是内存泄漏,但是一直没有dump文件生成,看gc log 每次gc 前后内存都得到很好的释放。应用就是跑着跑着就被操作系统kill掉了。后来意识这是OOM-Killer,不是jvm自己OOM,所以不会有dump文件生成。
既然不是java heap的OOM,那就有可能系统内存被别的进程占用了。
top | grep java
24017 usera+ 20 0 23.539g 0.014t 28168 S 19.3 60.4 31:21.24 java
24017 usera+ 20 0 23.539g 0.014t 28168 S 31.9 60.4 31:22.20 java
java进程使用内存稳定在60% 左右,
top - 01:08:48 up 13 days, 5:31, 1 user, load average: 0.08, 0.52, 0.62
Tasks: 1182 total, 1 running, 1181 sleeping, 0 stopped, 0 zombie
%Cpu(s): 7.4 us, 2.0 sy, 0.0 ni, 90.4 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem: 24689488 total, 22494148 used, 2195340 free, 87120 buffers
KiB Swap: 0 total, 0 used, 0 free. 2755384 cached Mem
这台机器主要就是run我们的这个tomcat app, 通过top查看系统其他进程内存消耗都很小,但是系统可用内存所剩无几,是什么占用了其余这么多内存?
ps -ef
发现 好多这个进程:
bash -c …/ipmitool -I
ps -ef | grep ipmitoo | wc -l
1072
而且看进程的启动时间,很多持续了都两周以上。很明显这个进程占用了很多系统资源。
查看code发现这个进程是我们通过ipmi协议操作远程机器,通过Java的ProcessBuilder 创建了一个Process对象来执行调用的,这个类的Process对象实际上启动了一个native 进程,然后代码中没有得到的正常的关闭,导致系统进程资源泄漏。我们每天有大量的这样的操作,所以越积越多,导致系统可用内存不够,然而应用又在不断的创建这样的进程,所有在应用运行的过程中,就触发了OOM-Killer. 其实说到底是自己杀死了自己。每次打开的Process对象,一定要记得关掉。
这种不是由于java heap out of memory导致的内存泄漏,排查的时候,要先通过系统命令查看内存的使用情况。否则很容易陷入java heap的oom的误区中。
本文发布于:2024-02-02 04:48:17,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170682050941454.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |