Ваш JBoss AS еще не летает? Тогда мы идем к вам :)

Я забыл рассказать еще про одну фишку, которая ускорит работу вашего JBAS’a (JBAS == JBoss AS).

Большинство людей не знает, что такое RMI DGC. И большинству людей не нужно знать, что такое RMI DGC. Это я к тому, что мы с вами не входим в это большинство, так что по ссылке сходить стоит. Благо, текста там немного.

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

Короче, чтобы JBOSS работал побыстрее, вставь эту строку в run.conf (который, напоминаю, расположен в $JBOSS_HOME/bin) куда-нибудь после того IF-a, что мы изменяли в предыдущей статье:

JAVA_OPTS="$JAVA_OPTS -Dsun.rmi.dgc.client.gcInterval=3600000 
-Dsun.rmi.dgc.server.gcInterval=3600000"

(Обратный слеш в данном случае не имеет никакого значения, он просто экранирует перевод каретки, чтобы строка кода влезла в формат поста. Когда будешь вставлять эту строку, можешь просто срастить эти две строки в одну, а слеш удалить.)

Есть еще один вариант. Можно запретить любому коду (в том числе и RMI подсистеме) запускать принудительную очистку мусора ,так что вместо вышеуказанных опций можно указать XX:+DisableExplicitGC. В этом случае сборка мусора будет запускаться если куча будет заполнена примерно на 70% (это дефолтное значение и оно тоже настраивается).

Какой из двух вариантов использовать? Не знаю, пока тестирую оба, посмотрим, что получится.

Возникает вопрос, а когда нужно это поведение-по-умолчанию RMI DGC? Никогда. Конечно, если твой код выполняет кучу вызовов удаленных объектов (remote object calls) (EJB, привет! :) и при этом не кэширует ваши LOCAL или REMOTE объекты, то тогда, _возможно_, очистки мусора раз в час будет недостаточно.

Те, кто хотят узнать побольше про управлению памятью, могут почитать вот эти мои статьи.

Один комментарий to “Ваш JBoss AS еще не летает? Тогда мы идем к вам :)”

  1. Спасибо за позновательно статью. Будет летать )

Оставить комментарий

Последние твиты