java - Java 进程的 'pathname' 的空 '/proc/smap' 条目是什么?

标签 java linux memory-leaks jvm

我的大型 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/

相关文章:

java - 从 java 运行 python 脚本产生 KeyError

java - Java JScrollPane 的内存使用

java - Java中的音频播放没有内存泄漏

JavaPreparedStatement语法问题

java - 使页面的一部分在回发时保持完整

java - 将字符串转换为 TIMESTAMP,以便从 servlet java 插入数据库 oracle

linux - 在 mac osx 上安装 ia32-lib 很困难

用于重复行检索的 Linux 命令或/和脚本

java - 查找 ArrayList 中左右所有元素之和相等的索引

c++ - 使用MPI时 "Top"输出什么信息