我使用的是野蝇10.0.0最终版本。每当我卸载/部署模块9-10次时,我就会得到java.lang.OutOfMemoryError: GC overhead limit exceeded error
,同时,通配符的内存使用量也在缓慢增加,而且永不减少,这再次给出了java.lang.OutOfMemoryError: GC overhead limit exceeded error.
。
野生蝇在取消部署应用程序后并没有释放内存,并且不断增加部署,从而导致GC开销。
早些时候,当我使用通配符9版本时,它并没有给出这个问题。
我尝试了在下面的链接中给出的修正,用最新的版本替换了核心、servlet和websocket模块,但是它没有对我起作用。
https://developer.jboss.org/message/959286
有人能告诉我如何解决这个问题吗。
发布于 2016-08-10 14:02:11
您必须增加堆内存。为此
编辑bin/standalone.conf
配置文件,查找JAVA_OPTS
的第一次出现。
然后根据需要更改-Xmx
选项。
如果您使用Java 8,那么
更改:
JAVA_OPTS=”-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true”
至:
JAVA_OPTS=”-Xms64m -Xmx2G -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=2G -Djava.net.preferIPv4Stack=true”
资源链接:
WildFly 10 - java.lang.OutOfMemoryError:元数据空间
更新:类在卸载后未卸载。
马丁·库巴如下
对于WildFly 10.0.0,最后出现"java.lang.OutOfMemoryError: Metaspace“。 对于WildFly 10.1.0-快照( WFLY-6347合并的修复),没有发生OOM错误(垃圾收集了metaspace)
在检查了堆转储之后,我将org.jboss.el.cache.BeanPropertiesCache
确定为根本原因。在这种情况下,它保留了对person.joey.test.TestClientBean
类的硬引用,从而有效地阻止了GC中的相关ModuleClassLoader。
Enum值被类似于静态常量--也就是说,除非所有者类的类装入器是垃圾收集,否则它不是垃圾收集。
这就是为什么person.joey.test.RequestType
值保留在内存中的原因。OmniFaces只放大了影响--正如上面提到的,它持有对BeanManager的引用。
https://stackoverflow.com/questions/38874940
复制相似问题