2009-07-30 2 views
3

Я использую приложение ICEfaces, который работает над JBOSS, мой в настоящее время heapsize установлен вКак ваша память JVM 6 для JBOSS AS 5?

-Xms1024m -Xmx1024m -XX: MaxPermSize = 256m

что ваша рекомендация для настройки параметров памяти для JBOSS AS 5 (5.0.1 GA) JVM 6?

+0

Мы не можем дать вам рекомендации по этой информации. Тот факт, что вы используете ICEFaces, не имеет значения. – skaffman

+0

tks skaffman. Скажем, например, небольшое приложение (5 разных страниц) с активным JMS, EJB3 и от 10 до 50 пользователей. –

+0

Это, скорее всего, больше памяти, чем вам нужно. У вас есть конкретный вопрос или причина думать, что ваши настройки памяти неверны? – skaffman

ответ

4

Согласно этому article:

AS 5, как известно, жадным, когда дело доходит до PermGen. При запуске он часто выдает OutOfMemoryException: PermGen Error.

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

-XX:PermSize=512m -XX:MaxPermSize=1024 -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled 

Но это больше FYI, я не предлагаю, чтобы применить эту конфигурацию вслепую (как люди писали в комментарии, «если он не сломан, не исправить»).

Что касается размера вашей кучи, всегда имейте в виду: Чем больше куча, тем больше основной GC. Теперь, когда вы говорите «это было определенно слишком мало», я действительно не знаю, что это значит (какие ошибки, симптомы и т. Д.). Насколько мне известно, куча размером 1024 м на самом деле довольно большая для webapp, и для большинства из них действительно должно быть более чем достаточно. Просто остерегайтесь большой продолжительности GC.

+0

Отличные предложения! JBoss 5 и 6M3 не любят «+ CMSPermGenSweepingEnabled». Говорят, вместо этого вместо использования -XX: + CMSClassUnloadingEnabled. –

0

Куча: начните с 512 МБ, установите кепку туда, где вы полагаете, что ваше приложение никогда не должно появиться, а не для того, чтобы ваш сервер начал заменять.

Permgen: Обычно это достаточно стабильно, как только приложение читает все классы, используемые в приложении. Если вы протестировали приложение, и оно работает с 256 МБ, то оставьте его таким.

0

@wds: Это, безусловно, не очень хорошая идея, чтобы установить максимум кучи как можно выше по двум причинам:

  1. Большие кучи сделать полный GC занять больше времени. Если вы включили сканирование PermGen, большое пространство PermGen займет больше времени для GC.
  2. JBoss AS на Linux может оставлять неиспользуемые ручки ввода/вывода открытыми достаточно долго, чтобы заставить Linux очистить их принудительно, блокируя все процессы на машине до тех пор, пока она не будет завершена (может занять 1 минуту!). Если вы забудете отключить горячий развернутый сканер, это произойдет гораздо чаще.

Это случилось бы, возможно, один раз в неделю в моем приложении, пока я:

  1. снизился -Xms до точки, где JBoss AS стартап начинал замедляться
  2. снизилась -Xmx до точки, где полные GC происходили чаще, поэтому обработка ручек ввода-вывода Linux была остановлена ​​

Для разработчиков я думаю, что это прекрасно, чтобы увеличить PermGen, но в производстве вы, вероятно, захотите использовать только то, что необходимо, чтобы избежать долгого GC приостанавливается.

+0

Да, извините, страшный совет. Я удалил это. Извините за это, не знаю, о чем я думал. – wds

Смежные вопросы