我似乎在大型Java应用程序中有大量内存泄漏。但泄漏似乎不在JVM内存本身(即:堆,eden,幸存者,代码,perm_gen等),因为我没有用完这种类型的内存(即:它在使用过程中上升,但是当GC运行时它最终会回落。
我的问题是我用完了系统内存!所以我正在追踪'/ proc / smap'并使用'pmap'工具来查看正在发生的事情。例如,'so','tmp'和'jar'条目保持相对稳定,并且在映射项中不会增加太多,也不会意外地增加它们的映射大小(如预期的那样)。
但是,随着时间的推移,显着增长的是未分配给特定路径名的映射条目数。随着时间的推移,有越来越多的这些,它们似乎没有消失。
我可以理解当JVM映射JAR文件时会发生什么,但这些无路径映射究竟是什么?有人有解释/例子吗?
此外,任何人都可以确认'[heap]'条目是实际的'JVM'代码堆,并且与XMM和XMS堆空间无关。
我在2.6.16 Linux发行版上使用Java(TM)2运行时环境,标准版(版本1.5.0_07-b03)。
答案 0 :(得分:0)
您使用的是哪个应用服务器?
可能是c堆内存泄漏,所以你可以升级你的jdk并尝试一下吗?