Memory leaks ResourceManager内存泄漏?

Memory leaks ResourceManager内存泄漏?,memory-leaks,resourcemanager,Memory Leaks,Resourcemanager,我们得到了两个相同版本的CDH集群(CDH-5.5.2-1.cdh5.5.2.p0.4),每个集群的ResourceManager都具有相同的配置 其中一个ResourceManager运行良好,随着时间的推移,其堆内存保持在常量(例如800mb) 但另一个将抛出OOM异常,并在15天后退出。当我们使用“jmap-F-histo”转储其jvm堆信息时,我们看到对象“char[]”的大小随着时间的推移而增大,最后抛出OOM 以下是良好RM和OOM RM的jvm转储结果的关键信息: dump cmd

我们得到了两个相同版本的CDH集群(CDH-5.5.2-1.cdh5.5.2.p0.4),每个集群的ResourceManager都具有相同的配置

其中一个ResourceManager运行良好,随着时间的推移,其堆内存保持在常量(例如800mb)

但另一个将抛出OOM异常,并在15天后退出。当我们使用“jmap-F-histo”转储其jvm堆信息时,我们看到对象“char[]”的大小随着时间的推移而增大,最后抛出OOM

以下是良好RM和OOM RM的jvm转储结果的关键信息:

dump cmd:jmap-F-histo pid

A) 集群A中良好RM的jvm转储 [我们看到40w+char[]个实例具有60m+堆mem][1]

B) 集群B中bak RM(OOM)的jvm转储 [我们看到30w+char[]实例,但有400m+堆mem][2]

任何帮助都将不胜感激


我们今天转储(jmap-F-dump:file=file.dump_result pid)堆信息,并使用MAT(内存分析器工具)分析转储文件,我们发现实例变量应用程序(java.util.concurrent.ConcurrentHashMap)在org.apache.hadoop.warn.server.resourcemanager.RMActiveServiceContext中会占用大量内存: