对于Java进程,'/ proc / smap'的空'pathname'条目是什么?

时间:2010-10-20 18:13:20

标签: java linux memory-leaks jvm

我似乎在大型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)。

1 个答案:

答案 0 :(得分:0)

您使用的是哪个应用服务器?

可能是c堆内存泄漏,所以你可以升级你的jdk并尝试一下吗?