Сведения о вопросе

Killer

18:40, 3rd August, 2020

Теги

Java   WildFly   Apple   GarageBand    

Почему растут GC паузы у JBoss'а?

Просмотров: 269   Ответов: 2

Приветствую!
Ситуация такая:
Есть 2 сервера, на каждом крутится по JBoss'у 4.2. На каждом JBoss'е вертится по приложению (пусть будут А и Б). Приложение А ходит к Б по EJB. Всё работает как надо.
Однако есть проблема:
У первого JBoss'а постепенно растёт время выполнения GC для young generation. Вскоре после запуска это время составляет 0.1 секунды, а через три дня уже 1.1 секунды. В результате чего растет нагрузка на сервер и уменьшается пропускная способность приложения.
О настройках:
Используется -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:NewSize=1024M -XX:MaxNewSize=1024M
При этом на JBoss'е с приложением Б всё хорошо.

Есть подозрение, что такой рост вызван тем, что А подключено к Б, т.к. подобная ситуация повторялась и на других JBoss'ах и приложениях.
Подскажите, пожалуйста, из-за чего могут расти эти паузы?



  Сведения об ответе

darknet

07:44, 22nd August, 2020

Э-м-м… почему такой большой размер YoungGen? На то и нужен generational GC, чтоб молодое поколение было маленьким и быстрым. Какой общий размер Java Heap?
Для максимизации пропускной способности ParallelGC лучше.
Похоже на утечку памяти в самом приложении. Есть возможность запустить с -Xloggc:gc.log -XX:+PrintGC [-XX:+PrintGCDetails -XX:+Verbose]?


  Сведения об ответе

PAGE

18:23, 24th August, 2020

В итоге, все решилось добавлением в JAVA OPTS параметров -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться