Серверы приложений (Java): должно ли добавление ОЗУ на сервер зависеть от значения -Xmx каждого домена? - PullRequest
1 голос
/ 07 июня 2010

У нас есть сервер приложений Glassfish, работающий на серверах Linux. Каждая установка Glassfish содержит 3 домена. Каждый домен имеет конфигурацию JVM, например -Xms 1 ГБ и -XmX 2 ГБ. Это означает, что если все эти три домена работают с максимальной памятью, сервер должен иметь возможность выделить всего 6 ГБ для JVM

С этой математикой каждый наш сервер имеет 8 ГБ ОЗУ (буфер 2 ГБ) Прежде всего - это хороший подход? Я так не думал, потому что, когда мы анализировали использование памяти на этом сервере за последние несколько месяцев, это было только до 1 ГБ;

Теперь есть запросы на добавление дополнительного домена к этим серверам - значит ли это добавить дополнительные 2 ГБ ОЗУ просто для безопасности или на основе тренда, продолжить с той памятью, которая есть на сервере?

1 Ответ

1 голос
/ 07 июня 2010

Несколько правил:

  • Вы действительно хотите, чтобы сумма ваших XmX и ОЗУ, необходимых для приложений, которые вы должны постоянно запускать на устройстве (включая ОС), была ниже, чем ваша физическая ОЗУ. В противном случае, что-то будет перенесено на диск, и когда это «что-то» должно запуститься, все резко замедлится. Если что-то постоянно входит и выключается, ничто не сработает.

  • Вы могли бы быть в состоянии обойтись с более низким XmX на некоторых из ваших серверов приложений (ваш вопрос, по-видимому, подразумевает, что некоторым из ваших JVM выделено слишком много ОЗУ). Я полагаю, что Tomcat может начать с всего лишь 64 Мб XmX, но во многих приложениях при такой установке очень быстро заканчивается память. Настройка распределения памяти и сборщика мусора может стоить того. Честно говоря, в последнее время я не очень осведомлен о производительности GC (мне не пришлось ничего настраивать, чтобы получить достойную производительность через 4-5 лет), поэтому я не знаю, насколько это будет ценно. Раньше паузы в GC были плохими, а большие кучи означали более длинные паузы ...

  • Любая свободная память не будет «потрачена впустую». ОС будет использовать его для дискового кэша, и это может быть полезным.

В любом случае ответ обычно ... вам нужно запустить тесты. Возможность проводить стресс-тесты действительно бесценна, и я советую вам потратить некоторое время на ее написание и запуск. Это позволит вам принимать обоснованные решения по этому вопросу.

...