我的大型 Java 应用程序似乎存在巨大的内存泄漏。但泄漏似乎并不在 JVM 内存本身(即:堆、伊甸园、幸存者、代码、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)。
最佳答案
您使用哪个应用程序服务器?
可能是c堆内存泄漏,你可以升级一下jdk试试吗?
关于java - Java 进程的 'pathname' 的空 '/proc/smap' 条目是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3980959/