Устранение неполадок Tomcat 7 во время выполнения

У меня проблема, и я не знаю, как получить некоторые подсказки о том, что может быть не так. Я развернул свое веб-приложение (весна - спящий режим - MySQL), и в течение нескольких секунд после его запуска оно работает нормально. Я могу листать страницы. Затем все запросы получают стек, и ничего не загружается. Все страницы просто висят. Ошибка PageNotFound 404 появляется, когда я ввожу не ту страницу.

Вопрос в том, что у меня есть tomcat7.exe в активных процессах с небольшим увеличением памяти с течением времени. Так что подозреваю утечку памяти. Как мне получить кучу памяти от tomcat? И какой анализатор кучи лучше всего подходит для обнаружения утечки?

PS: Оказалось, что maxPoolSize был всего 15 в ComboPooledDataSource. Увеличил до 200 и теперь все работает нормально.


person MatBanik    schedule 12.12.2011    source источник


Ответы (2)


Здесь нужен дамп потока. Это даст вам необходимое понимание того, что делают потоки процессора Tomcat (TP), а также статистику кучи (при условии, что недавняя JVM Sun). Если вы не наблюдаете высокую загрузку ЦП в тандеме с увеличением памяти до максимального настроенного размера кучи, утечка памяти, скорее всего, не является вашей проблемой.

Скорее всего, это условие, блокирующее потоки и препятствующее завершению запросов, возможно, общий ресурс, такой как пул соединений и т. д. Использование приложения для анализа дампа потока поможет, если вы не знакомы с чтением вывода дампа потока. Вы также можете рассмотреть возможность включения приложения менеджера Tomcat, оно предоставляет некоторую полезную информацию о состоянии (во многом похожую на статус сервера Apache) и использует jconsole для мониторинга JVM через JMX.

person Danny Thomas    schedule 12.12.2011

Пожалуйста, посмотрите на эти две ссылки:

http://java-source.net/open-source/profilers/jmemprof

http://ctoblog.lucierna.com/ultimate-weapon-lucierna-kill-memory-leaks/

person olyanren    schedule 12.12.2011