我的制作环境:
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服务器停止工作。 / p>
我想知道为什么内存使用量远远超出jvm xmx设置?
有人可以帮助我吗?
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
答案 0 :(得分:0)
我想知道为什么内存使用量远远超出jvm xmx设置?
-Xmx设置只是给出了Java堆的最大大小。 Java使用除堆之外的其他内存;例如JVM的代码,以及包含已编译代码,线程堆栈和内存映射文件的内存段。
您的应用程序似乎存在严重的内存泄漏,并且它正在泄漏非堆内存。