Как настроена память JVM 6 для JBOSS AS 5?
Вопрос
Я использую приложение ICEFaces, которое работает через JBOSS, мой размер кучи в настоящий момент установлен на
-Xms1024m & # 8211; Xmx1024m -XX: MaxPermSize = 256 м
Какова ваша рекомендация по настройке параметров памяти для JBOSS AS 5 (5.0.1 GA) JVM 6?
Решение
Согласно этой статье :
AS 5, как известно, является жадным, когда дело доходит до PermGen . При запуске часто выдается
OutOfMemoryException: ошибка PermGen
.
Это может быть особенно неприятно во время разработки, когда вы часто выполняете горячее развертывание приложения. В этом случае JBoss QA рекомендует увеличить размер permgen, разрешить выгрузку классов и очистку permgen :
-XX:PermSize=512m -XX:MaxPermSize=1024 -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled
Но это больше к вашему сведению, я не предлагаю применять эту конфигурацию вслепую (как люди писали в комментариях, "если она не сломана, не исправляйте ее"). Р>
Что касается размера вашей кучи, всегда помните: чем больше куча, тем длиннее основной сборщик мусора . Теперь, когда вы говорите «это было определенно слишком мало», я действительно не знаю, что это значит (какие ошибки, симптомы и т. Д.). Насколько мне известно, куча в 1024 метра на самом деле довольно большая для веб-приложения и должна быть более чем достаточно для большинства из них. Просто остерегайтесь основной продолжительности GC.
Другие советы
Куча: начните с 512 МБ, установите ограничение на то, куда, как вы полагаете, ваше приложение никогда не попадет, и не заставляйте сервер переставать подкачку.
Permgen: обычно это достаточно стабильно, когда приложение читает все классы, используемые в приложении. Если вы проверили приложение, и оно работает с 256 МБ, оставьте это так.
@wds: определенно не стоит устанавливать максимально возможный максимум кучи по двум причинам:
<Ол>Это может произойти, возможно, один раз в неделю в моем заявлении, пока я не
<Ол>Для разработчиков, я думаю, это нормально, если вы хотите увеличить PermGen, но в производстве вы, вероятно, захотите использовать только то, что необходимо, чтобы избежать длительных пауз GC.