Tomcat: настроить пропорции памяти - PullRequest
2 голосов
/ 01 марта 2012

У меня есть экземпляр Tomcat, работающий на Windows 2008 Server с 4 ГБ ОЗУ.Сервер предназначен для этого одного приложения, поэтому я бы очень хотел иметь возможность выделить большую часть оперативной памяти для Tomcat.Моя настройка Tomcat в настоящее время имеет следующие параметры Java:

-Xms256m

-Xmx1600m

Я хотел бы увеличить объем оперативной памяти, предпочтительно до 3 ГБЯ знаю, как это сделать, просто увеличьте значение -Xmx).Тем не менее, Tomcat отказывается запускаться, если я увеличиваю максимальный объем кучи за пределы 1600 МБ.Некоторые сайты, которые я прочитал, говорят, что Tomcat не может использовать более 40% доступной оперативной памяти, что, по-видимому, согласуется с тем, что я вижу.

Есть ли способ увеличить пропорцию памяти, которую может использовать Tomcat, чтобы я мог увеличить количество памяти, которую может использовать Tomcat?

Спасибо, Рик

Ответы [ 2 ]

3 голосов
/ 02 марта 2012

Возможно, ваша проблема связана с ОС, а не с Tomcat / Java. ОС Windows ограничивает выделение памяти для 32-разрядного процесса всего 2 ГиБ (по умолчанию).

Причина, по которой он позволил вам выделить только около 1,5 ГБ пространства кучи, заключается в том, что для процесса выделена и другая память (издержки JVM / библиотеки, пространство perm gen и т. Д.).

Почему 32-разрядная Windows накладывает ограничение на адресное пространство процесса 2 ГБ, а 64-разрядная Windows накладывает ограничение 4 ГБ?

Другие современные операционные системы [ кашель Linux] позволяют 32-разрядным процессам использовать все (или большинство) из адресуемого пространства 4 ГиБ.

Тем не менее, 64-разрядные ОС Windows могут быть настроены для увеличения предела 32-разрядных процессов до 4 ГБ (3 ГБ на 32-разрядных):

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx

Однако, как вы правильно сделали, лучшее решение - это использовать 64-битную JVM с вашей 64-битной ОС. Терабайт наваливает кого угодно:

Макс. Память для 64-битной Java : D

2 голосов
/ 01 марта 2012

Несмотря на наличие 64-битного сервера, у меня была установлена ​​только 32-битная Java / Tomcat.Я удалил Java и Tomcat и установил 64-битные версии, и все работало нормально.похоже, проблема была в том, что 32-битная Java может адресовать только 1,5 ГБ.

...