30回复
4年前
docker rss内存缓慢增长,最终导致tomcat被系统oom killer
问题描述
在运行中观察到运行再docker中的容器,rss缓慢增长,最终会导致oom killer。再扩容到4C 8G的时候,同样会有该问题。
JVM堆内存没有超出使用,正常。代码中也没有对堆外内存的直接操作。
JVM内存堆
内存RSS
(后面会逐渐逼近,从而导致机器rss使用完毕)
排查下来,发现内存的增长主要在这些虚拟内存对应的rss处增长
注:加起来为65536,这些对应的rss在缓慢增长,每次增加几MB,最终导致整个rss耗尽
希望各位帮忙看看,这些地址对应的东西是什么,为什么会导致docker的rss使用完毕。整个java进程使用的rss在缓慢增长,堆的大小正常,和NMT的对的上,但是整个堆外就不对了。还是能够帮忙解释一下。
有注意到JDK的bug(compiler引起的rss增长),但是那是实际的rss增长为64m的,我这个实际增长没有那么多。
希望各位能够提供一个排查的思路,感谢
环境说明
系统参数
机器配置:2C 4G
JDK版本:1.8.0_201
OS版本: Linux 4.14.67-2dev917.el7.x86_64/amd64 Centos
glibc版本:ldd (GNU libc) 2.17
JVM启动关键参数
-Xmx3296m -Xms1977m -Xss256k XX:CICompilerCount=2 -XX:ParallelGCThreads=2
垃圾收集器为:G1
说明
线程数正常,维持在一个固定值。
11487 阅读