2015-08-06 4 views
0

Я борется с проблемой потребления памяти, мое использование памяти tomcat в диспетчере задач постоянно растет при каждом запросе, который я делаю для своего webapp. Я прочитал, что использование mem в диспетчере задач не обязательно означает, что есть проблема, так как он суммирует кучу, не кучу и собственную память для JVM; однако я все еще не уверен, что именно нужно сделать, чтобы автоматически уменьшить потребление памяти кучи.Почему использование памяти tomcat возрастает до тех пор, пока я не нажму кнопку «Выполнить GC с jconsole»?

Я использую tomcat 7.0.62 и JRE1.8.0_51 с приложением hibernate3/c3p0 поверх рамки struts2.

В последние несколько месяцев у нас были расширенные функциональные возможности для приложения, вначале это было утечкой памяти, но каждый раз, когда мы нажимаем кнопку «Выполнить GC» в jconsole, куча памяти падает на графиках, следовательно, Использование памяти в процессе tomcat перестает увеличиваться темпами, которые были раньше.

До сих пор я поставил следующие свойства:

-Dcatalina.home=C:\apache-tomcat-7.0.62 
-Dcatalina.base=C:\apache-tomcat-7.0.62 
-Djava.endorsed.dirs=C:\apache-tomcat-7.0.62\endorsed 
-Djava.io.tmpdir=C:\apache-tomcat-7.0.62\temp 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djava.util.logging.config.file=C:\apache-tomcat-7.0.62\conf\logging.properties 
-Dcom.sun.management.jmxremote.port=6060 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-XX:+UseParNewGC 
-XX:SurvivorRatio=128 
-XX:MaxTenuringThreshold=0 
-XX:+UseTLAB 
-XX:+UseConcMarkSweepGC 
-XX:+CMSClassUnloadingEnabled 
-XX:+CMSPermGenSweepingEnabled 

Есть ли какой-либо параметр конфигурации отсутствует, что бы вы порекомендовали. В моей tomcat7w консоли конфигурация выглядит следующим образом:

Tomcat7w properties

Спасибо заранее.

ответ

1

Существует множество различных сборщиков мусора, которые могут быть установлены при запуске JVM. По умолчанию gc не будет работать, если нагрузка на систему и по-прежнему свободная память. Используйте -verbosegc, если вы хотите увидеть, как ведет себя сбор мусора. Вы можете установить максимальное использование кучи (-Xmx) при запуске, а gc - чаще.

Я рекомендую только беспокоиться об этом, если на сервере запущены другие программы, и у них голодание. Теперь у вас установлена ​​лучшая производительность tomcat с доступными ресурсами.