Назад | Перейти на главную страницу

JBoss 5 в AIX 5.3

Я новичок в AIX и системном мониторинге. Фактически наше приложение в настоящее время работает на jboss 5.1 в AIX 5.3. Пожалуйста, проверьте конфигурацию и системные настройки ниже.

  1. Конфигурация системы AIX
    • Уровень ОС 5.3.9.0 (oslevel -g)
    • Размер физической памяти 24 ГБ (svmon -G)
    • Размер страницы 4 ГБ (lsps -s)
    • процессоры 3 ядра, Тип процессора: PowerPC_POWER6, Тактовая частота процессора: 4704 МГц (prtconf | grep Processor)
  2. Версия Java
    • JRE 1.6.0 IBM AIX build pap6460sr10fp1-20120321_01 (SR10 FP1) (java -fullversion)
  3. Конфигурация JBoss

Иногда мы наблюдаем очень странное поведение в JBoss это зависает без каких-либо журналов ошибок. Также журнал сервера останавливается без дальнейшей трассировки. Также мы не можем получить дамп потока (kill -3) и его не генерировать в этот момент. (kill -3 xxxxx работает в нормальных условиях) Единственная доступная для нас опция - это перезапустить сервер jboss, и он покажет все сообщения, которые были в очередях во время процесса замораживания после перезапуска.

Мы пытаемся настроить некоторые параметры в JBoss hornetq, хотя проблема была там. Hornetq застрял по умолчанию. Но нам не повезло, и мы также не можем изолировать проблему в какой-либо точке. Мы смотрим на такой инструмент, как nmon, для наблюдения за этим, но не можем сказать, что он достаточно хорош для этого.

Укажите, пожалуйста, что-нибудь для исследования этой проблемы.

Спасибо

1. Проверьте полные заполнители

Вам нужно проверить, активирован ли fullcore на вашем AIX:

lsattr -Elsys0 | grep full

Чтобы включить fullcore:

chdev -l sys0 -a fullcore=true

2. Проверьте лимиты

Пределы размера и ядра должны быть установлены на unlimited.

ulimit -c unlimited
ulimit -f unlimited

Первое, на что нужно обратить внимание, это исчерпание пространства кучи. Включите подробную сборку мусора, добавив следующие параметры в параметры Java.

-verbose:gc

Просмотрите результат вручную или проанализируйте его с помощью http://www.tagtraum.com/gcviewer.html.

Насколько я помню, AIX JDK сильно отличается от Sun JDK, включая стратегию сборки мусора, поэтому нужно быть осторожным при чтении JDK.

В исправном приложении вы увидите увеличение используемого пространства кучи, а затем, когда будет выполняться полный сборщик мусора, используемое пространство должно значительно сократиться. Это будет повторяться на протяжении всего срока службы приложения.

В нездоровом приложении потеря памяти после полного GC будет каждый раз немного меньше, так что со временем используемое пространство кучи будет медленно подниматься все выше и выше, пока не станет больше доступной памяти. На этом этапе JDK обычно перестает отвечать, поскольку он постоянно запускает сборщик мусора, пытаясь освободить память.

Если это происходит, вам придется взглянуть на свое веб-приложение. Разработчики нередко кэшируют объекты в памяти, но не используют ограничение на количество объектов.

НАКОНЕЧНИК: Устанавливать -Xms того же размера, что и -Xmx. Выделение памяти из операционной системы для кучи - дорогостоящая операция. В серверной среде это не имеет особого смысла, поскольку вам всегда требуется достаточно реальной памяти для кучи.