Сколько памяти необходимо оставить ОС при использовании серверного приложения Java?

Сколько памяти необходимо оставить ОС при использовании серверного приложения Java?

Предположим, я запускаю tomcat с -Xms256m -Xmx1024m, но хотел бы увеличить использование кучи.

Какой максимальный размер безопасной кучи я могу выделить?

Для этого вопроса предположим, что система имеет 5 ГБ ОЗУ и является системой z/Linux. Однако, если возможно, я хотел бы получить более широкий ответ на основе правила большого пальца.

Также, если это дубликат, извините. Я был удивлен, что не нашел больше информации о таких вещах.

Не дублирует:я посмотрел наздесь, однако его ответ, похоже, всего лишь догадка, без резервной копии. Другие ответы в этом вопросе не очень понятны и/или не специфичны для моей проблемы. 1) Я не использую 32-битную систему Windows, 2) Я не спрашивал о PermGen, хотя он может быть упомянут в хорошем ответе, 3) В третьем ответе действительно говорилось: "Наконец, вы также должны учитывать другие вещи, которые работают на сервере и которым тоже нужна оперативная память", но это не точный ответ. Я просто беспокоюсь об использовании памяти ОС на данный момент.

Редактировать: Это выделенная система, поэтому меня больше всего беспокоит использование памяти ОС. Я не беспокоюсь о других программах.

ГК

решение1

Максимальный размер кучи, который вы захотите назначить, будет основан на использовании вашей системой собственных ресурсов, других запущенных вами служб и т. д. Вам нужно назначить размер кучи, который оставит достаточно памяти доступной для ОС, чтобы предотвратить ненужное подкачивание памяти. Это больше проблема в Windows, но проблема наблюдается и в Linux (я больше эксперт по Windows, чем по Linux, так что извините за это).

Во-первых, вам необходимо проверить использование ресурсов вашей системы:http://www.cyberciti.biz/faq/linux-check-memory-usage/

Далее вам нужно посмотреть, как настроен ваш файл подкачки:http://www.cyberciti.biz/faq/linux-check-the-size-of-pagesize/

Затем вам придется попробовать разные конфигурации на основе собранной ранее информации и понаблюдать за использованием файла подкачки:http://www.cyberciti.biz/faq/linux-check-swap-usage-command/

Если ваш файл подкачки используется часто, то размер кучи слишком большой. Если он используется очень мало или вообще не используется, вы можете попробовать увеличить размер кучи, чтобы повысить производительность (фактические результаты производительности будут различаться в зависимости от приложений Java, а увеличение размера кучи может ухудшить производительность некоторых приложений из-за способа их программирования).

Вы хотите убедиться, что вы назначаете соответствующий объем памяти, чтобы у вашей ОС было достаточно свободной оперативной памяти для легкого обслуживания файла подкачки, а у вашего приложения было достаточно памяти, назначенной для него. В Windows я стараюсь поддерживать не менее 25% свободной оперативной памяти под нагрузкой. Я бы попробовал разные конфигурации и посмотрел на производительность вашей системы.

ЕЩЕ ОДНО ВАЖНОЕ ЗАМЕЧАНИЕ: в Java 8 вам вообще не нужно определять эти элементы. Java 8, похоже, лучше поддерживает эти значения самостоятельно, а не назначает их статически.

Связанный контент