3

我的生产环境:

OS: windows server 2008 R2 64bit
JDK: 1.6u41 64bit
JBoss: 5.1.0
RAM: 24GB

JBoss中的JVM参数如下:

set "JAVA_OPTS=-Xms3072M -Xmx3072M -XX:MaxPermSize=256M -XX:NewSize=1024M -XX:MaxNewSize=1024M -XX:SurvivorRatio=32"

然后我发现windows任务管理器中的java.exe内存使用(私有工作集)一直在上升,几个小时后达到6GB,几天后达到20GB,然后我的JBoss服务器停止工作。

我想知道为什么内存使用量会远远超出 jvm xmlx 设置?

有人可以帮我吗?


FULL GC infomation as below:
C:\Users\Administrator>jstat -gcoldcapacity 2456
OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT
2097152.0   2097152.0   2097152.0   2097152.0 20565  1959 3746.986 11586.727
4

1 回答 1

0

我想知道为什么内存使用量会远远超出 jvm xmlx 设置?

-Xmx 设置给出 Java 堆的最大大小。Java 使用堆以外的其他内存;例如 JVM 的代码,以及包含已编译代码、线程堆栈和内存映射文件的内存段。

您的应用程序似乎有严重的内存泄漏,并且它正在泄漏非堆内存。

于 2013-08-20T07:28:18.747 回答