У меня проблемы с JVM-Heap.
У нас есть веб-сайт с HTTP-сервером Apache и сервером приложений Apache Tomcat.
Все запросы * .jsp к HTTP-серверу Apache будут перенаправлены на сервер Tomcat (протокол: ajp).
На сайте более 10'000 файлов jsp.
У нас также есть поисковое устройство Google, которое каждую ночь сканирует веб-сайт.
Во время сканирования объем кучи jvm увеличивается до максимального предела в 8 ГБ.
С помощью javamelody я вижу, что пространство кучи увеличивается аналогично загруженным классам.
Для анализа взял кучу свалки.
Вот отчет с Eclipse MAT:
Один экземпляр org.apache.jasper.servlet.JspServlet, загруженный с помощью org.apache.catalina.loader.StandardClassLoader @ 0x7092c5148, занимает 1'189'603'328 (96,75%) байт.
Память накапливается в одном экземпляре "java.util.concurrent.ConcurrentHashMap $ Segment []", загруженном "".
Ключевые слова
java.util.concurrent.ConcurrentHashMap $ Segment []
org.apache.catalina.loader.StandardClassLoader @ 0x7092c5148
org.apache.jasper.servlet.JspServlet
Есть ли проблема с запросами GSA?
И почему JVM не может выгружать сгенерированные классы?