Устранение неполадок Tomcat 7 во время выполнения - PullRequest
0 голосов
/ 13 декабря 2011

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

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

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

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

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

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

1 голос
/ 13 декабря 2011
...