JBoss因内存不足而崩溃,如何防止这种情况发生?我修改了run.bat中的值,但结果是一样的。 “ - Xms1024 Xmx1024 PermGen512”
答案 0 :(得分:3)
您可能有资源泄漏,在这种情况下,查找和删除泄漏的任何内容只会延迟错误,而不是阻止它。 jhat&在{OOM}时,-XX:+HeapDumpOnOutOfMemoryError
将允许您检查堆中的对象,这是一个很好的开始,可以确定您是否有泄漏。泄漏的地方。
对于run.bat,您列出的选项可能无法按照您的意图运行。我肯定会明确指定“m”egabyte(千字节?千兆字节?mb似乎最有可能)后缀,并在初始大小之前设置最大大小。所以,-Xmx1024m -Xms1024m -XX:MaxPermSize=512M
。
512兆字节(顺便说一句),对于永久性的一代来说是一个很大的尺寸。也许你的意思是kb?您可以使用jstat或将-XX:-PrintGCDetails添加到run.bat,以查看实际使用的永久代数空间。
答案 1 :(得分:0)
您的问题可能与此处说明的问题有关:JVM: Solving OutOfMemoryError with less Memory
答案 2 :(得分:0)
在Jboss版本:版本:5.0.0.GA中,在jboss中运行应用程序时,由于应用程序的大量数据处理,我遇到了内存不足错误。
要解决相同的问题,你可以优化代码,这样在处理时堆内存中的数据会更少,或者你可以增加JBOSS的堆内存:
JAVA_OPTS =“ - Xmx4096m -Xms4096m -XX:MaxNewSize = 896m -XX:NewSize = 896m
您可以根据自己的要求更改内存值。
如果permgen空间问题出现内存不足错误,那么您可以重新启动服务器以解决此问题,您可以通过更改下面提到的变量的内存值来限制它:
-XX:MaxPermSize参数=256米
谢谢, Ankit Adlakha
答案 3 :(得分:-1)
可能与此有关。 https://issues.jboss.org/browse/JBAS-7553
显然,当作为服务运行时,JBoss可能会忽略-Xms