Максимальный размер кучи для Tomcat 6 на 64-битных CentOs? - PullRequest
3 голосов
/ 09 марта 2011

Я запускаю экземпляр tomcat 6 на большом экземпляре EC2 под управлением CentOS 5.4.Коробка имеет 7,5 ГБ ОЗУ и предназначена для запуска tomcat.

Я пытаюсь выделить для коробки 6 ГБ ОЗУ для ее максимальной кучи.Однако я продолжаю получать эту ошибку:

Invalid maximum heap size: -Xmx6144m
The specified size exceeds the maximum representable size.

Когда я уменьшаю объем ОЗУ, которое я даю, я начинаю получать эту ошибку вместо этого:

Error occurred during initialization of VM
Could not reserve enough space for object heap

Даже при работающем приложении (с xmx3000m) когда я бегу свободно, у меня есть эта сумма:

 [tomcat@producer1:/usr/share/tomcat/logs] $free
             total       used       free     shared    buffers     cached
Mem:       7864320    1512736    6351584          0     179948     702352
-/+ buffers/cache:     630436    7233884
Swap:            0          0          0

Максимум, что я могу дать, это 3000м.Это кажется неоправданно маленьким.У кого-нибудь есть идеи?Спасибо

1 Ответ

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

У вас установлен 64-битный JDK? Если вы используете 32-битный JDK, он может получить максимальный доступ к 4 ГБ (теоретически). Поскольку вы планируете использовать 6 ГБ, вам необходим 64-битный JDK. В добавок к этому, поскольку у вас есть 7,5 ГБ, 6 ГБ - жесткое нет. CentOS требует некоторой памяти для ядра, обработки других сервисов, памяти SWAP из этого.

Так что дайте пробную версию и ошибку, увеличив размер кучи с 5G и выше. JDK требует дополнительной памяти помимо кучи, например, permgenspace (обычно это 128–512M в зависимости от того, сколько у вас библиотек / загрузчиков классов)

См .: http://benjchristensen.com/2007/02/16/32-bit-versus-64-bit-jdk-memory-usage/

...