我正在使用wildfly 10.0.0最终版本。我得到Work
每当我取消部署/部署模块9-10次时,wildfly的内存使用量会继续缓慢增加并且永不减少,它再次给出ref
Wildfly在取消部署应用程序后没有释放内存,并且继续增加部署,因此导致GC开销
早些时候,当我使用wildfly 9版本时,它没有给出这个问题。
我尝试使用最新版本替换核心,servlet和websocket模块,从而尝试了下面链接中给出的修复,但它对我没用。
java.lang.OutOfMemoryError: GC overhead limit exceeded error
有谁能告诉我如何解决这个问题。
答案 0 :(得分:17)
您必须增加堆内存。对于这个
编辑JAVA_OPTS
配置文件,查找第一次出现-Xmx
。
然后根据需要更改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”
要:
org.jboss.el.cache.BeanPropertiesCache
WildFly 10 — java.lang.OutOfMemoryError: Metadata space
for WildFly 10.0.0.Final“java.lang.OutOfMemoryError:Metaspace” 发生
for WildFly 10.1.0-SNAPSHOT(修复WFLY-6347合并)没有OOM 发生错误(元空间被垃圾收集)
检查堆转储后,我已经确定了
person.joey.test.TestClientBean
是根本原因。在这种情况下,它保留了对person.joey.test.RequestType
类的硬引用,从而有效地阻止了GC中的相关ModuleClassLoader。
枚举值与静态常量的处理方式类似 - 即除非所有者类的类加载器是,否则它不会被垃圾收集。
这就是var init = function(){
$scope.getAllFriends($rootScope.rootName)
.then(function(data) {
console.log(data);
}, function(err) {
//error
});
}
init();
$scope.getAllFriends = function(name){
return friendService.getAllfriends(name)
}
值保留在内存中的原因。 OmniFaces只会放大影响 - 如上所述,它拥有对BeanManager的引用。