Максимальный предел памяти серверов приложений - PullRequest
6 голосов
/ 18 марта 2011

Сколько памяти может использовать сервер (Jboss, Tomcat и т. Д.)? Например, если сервер имеет 128 ГБ памяти, может ли он использовать не менее 100 ГБ? Я использую эти параметры для моего локального:

-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512

Можно ли настроить эти параметры для использования 100 ГБ?

Ответы [ 3 ]

8 голосов
/ 18 марта 2011

Мы используем это для запуска 64-битной виртуальной машины Java объемом 24 ГБ с паузой GC, составляющей менее секунды, при обработке более 100 запросов страниц в секунду:

-Xms24g -Xmx24g -XX:MaxPermSize=256m -XX:NewRatio=4 -XX:SurvivorRatio=8    
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+DisableExplicitGC  
-XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled  
-XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=68

Не должно быть никаких причин, по которым вы не можете указать 100 ГБ, если на вашем сервере есть память. Поскольку мы используем менее 32 ГБ, мы также используем -XX:+UseCompressedOops, чтобы уменьшить накладные расходы на 64-битную адресацию. Кроме того, мы используем -XX:+UseLargePages для повышения производительности, однако сначала необходимо включить поддержку больших страниц для вашей ОС.

4 голосов
/ 18 марта 2011

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

В противном случае -Xm принимает единицу «g», поэтому вы можете написать -Xmx100g

Manpage для Java (на OS X) говорит:

На платформах Mac OS X верхняя ограничение для этого значения при запуске в 32-битный режим (-d32) примерно 2100м минус накладные расходы, и примерно 127т минус накладные расходы суммы при работе в 64-битном режиме (-D64). На Солярисе 7 и Солярисе 8 SPARC платформы, верхний предел для этого значение примерно 4000м минус накладные расходы. На Солярисе 2.6 и платформы x86, верхний предел примерно 2000 м минус накладные суммы. На платформах Linux верхний предел составляет примерно 2000 м минус накладные расходы.

3 голосов
/ 18 марта 2011

Вы столкнетесь (возможно) с драматическими паузами в GC для такого размера кучи.(Помимо этого, я не знаю жестких ограничений, если вы используете 64-битную ВМ, конечно)

Не имеет прямого отношения к вашему вопросу, но я нашел это видео Google TechTalks наEhcache интересно - Грег Лак рассказывает о проблемах с размером кучи.

...