Назад | Перейти на главную страницу

Есть ли способ отключить ограничения памяти Tomcat?

Внутри файла /etc/tomcat6/tomcat6.conf строка конфигурации JAVA_OPTS дает мне возможность устанавливать ограничения памяти для Tomcat.

Например:

JAVA_OPTS="-Xms256M -Xmx1024M -XX:MaxPermSize=256m -XX:PermSize=128m"

Есть ли способ полностью отключить ограничения памяти для Tomcat? Я хочу, чтобы Tomcat использовал всю доступную память - я не хочу искусственно ограничивать JVM этими параметрами.

В качестве альтернативы, есть ли вред в том, чтобы сделать эти ограничения действительно большими?

На самом деле это не связано с Tomcat, но с этим приходится иметь дело каждому приложению Java. В сети много ресурсов, например этот:

http://javarevisited.blogspot.de/2011/05/java-heap-space-memory-size-jvm.html

Вы должны указать фактический объем памяти.

ОДНАКО, если вы отдадите всю системную память JVM, вы ничего не оставите для использования самой машине, и поэтому вы, скорее всего, получите системные сбои или, по крайней мере, действительно плохую производительность. Кроме того, если единственное решение, которое у вас есть, - это добавить в JVM больше памяти, вы можете посмотреть на лучший, более оптимизированный код и провести фактическое профилирование, чтобы найти проблемные области.

Я бы посоветовал не устанавливать их, особенно в случае утечки памяти, которая может занять большую часть (всю?) Памяти в вашей системе. Кроме того, в случае сборки мусора время паузы вашего приложения может стать неприемлемым, если использование памяти не отмечено флажком.

Определение размера JVM зависит от множества факторов: «след» вашего приложения, доступная оперативная память на сервере, другие процессы, запущенные на сервере, и т. Д. Вы будете более счастливы в долгосрочной перспективе, если профилируете свое приложение с помощью нагрузочного тестирования / профилирования инструмент, проверяя ваши журналы сборки мусора, потребление ресурсов сервера и т. д., и настраивайте эти параметры, вместо того, чтобы оставлять их. ИМО, вам следует запустить компактное, хорошо настроенное приложение (-: