У нас есть унаследованное приложение, которое собрано с использованием spring3 и java 7, и оно работало на Jboss 6. Недавно мы обновили сервер jboss с версии 6 до версии 7.1.3 с версией весны с 3.0 до 4.3.1 и java.из Oracle 1.7.0_60-b19 в Open java-1.8.0-openjdk.x86_64 1: 1.8.0.191.b12-0.el6_10.После обновления мы начинаем получать ошибку java.lang.OutOfMemoryError: превышен лимит накладных расходов GC .В приложении нет изменений кода, и окно linux такое же, как и для Jboss 6.
Мы проанализировали дамп кучи, общий для рабочей группы linux.мы использовали анализатор памяти JvisualVM и Eclipse, и он указывает на два возможных вида утечки:
1.io.undertow.server.session.InMemorySessionManager $ SessionImpl
2.org.jboss.vfs.spi.JavaZipFileSystem
Команда Linux скопировала ту же конфигурацию из jBoss 6 в jBoss 7. Конфигурация -
export JAVA_OPTS = "$JAVA_OPTS -Xms4096m -Xmx4096m -XX: MaxPermSize = 1024m -Xverify: нет -Dorg.jboss.resolver.warning = true -Djboss.modules.system.pkgs = com.sun.crypto.provider -Dsun.rmi.dgc.ligcInterval = 1800000 -Dsun.rmi.dgc.server.gcInterval = 1800000 -server -XX: + DoEscapeAnalysis -XX: + UseCompressedOops -XX: + UseParallelGC -XX: + UseParallelOldGC -Dcom.ibm.mq.cfg.MesingsMCipherDjava.net.opt / logs / EAP / "
Увеличение пространства кучи (молодое поколение, хранилище eden) - единственный вариант?