Количество загруженных классов в Tomcat продолжает расти - PullRequest
1 голос
/ 13 сентября 2011

Я использую Java Melody для мониторинга одного из наших приложений, которое является стандартным приложением J2EE, развернутым в Tomcat 6, с Apache 2 в качестве внешнего интерфейса с использованием AJP. Есть два экземпляра, которые сидят за F5. Все выглядит вполне нормально, и это приложение с низким уровнем громкости; в среднем около 200 обращений в минуту, около 4% процессорного времени и 350 мегабайт памяти. Единственное, что меня беспокоит - это количество загруженных классов; через три дня одна JVM находится на 752k, а другая на 741k. Три является прямой корреляцией использования с увеличением числа классов

При просмотре stackoverflow, кажется, много сообщений об этом происходит, когда приложение останавливается и перезапускается, или повторно развертывается в Tomcat. Это не тот случай, здесь. Каждый раз, когда мы перераспределяем, все это останавливается, включая Apache.

Есть идеи, как выяснить, что происходит?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2011

У меня возникла похожая проблема при запуске tomcat 7 в AIX. После добавления java_opt "-Xincgc" он выровнялся.

0 голосов
/ 13 сентября 2011

Вы не сообщили о каких-либо исключениях OutOfMemory, поэтому, возможно, эти увеличивающиеся классы не являются проблемой.

Если количество загруженных классов увеличивается, это означает, что они не собирают мусор, поскольку некоторые ссылки на эти экземпляры все еще существуют. Может быть, это некоторые внутренние API или сторонние библиотеки, загруженные приложением и хранящиеся в памяти.

Я бы предложил 2 вещи:

A) Установлены ли ваши настройки ГХ, Xmx, Xms, NewSize и лот на адекватные значения? Вы можете опубликовать их, чтобы добавить к вашему вопросу.

B) Профилируйте приложение и изучите, что находится в куче. Используйте VisualVM или Yourkit для получения и анализа дампа кучи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...