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

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

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

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


person ring bearer    schedule 07.06.2010    source источник


Ответы (1)


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

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

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

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

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

person alex    schedule 07.06.2010