java8 “java.lang.OutOfMemoryError: Metaspace”

Nach der Umstellung unserer Java-Anwendung (Dienste, die auf Tomcat ausgeführt werden) JRE von Java 7 auf Java 8 wurde @ angezeigjava.lang.OutOfMemoryError: Metaspace nach ein paar Tagen mit hohem Verkehrsaufkommen.

Heap Nutzung war OK. Metaspace springt nach einiger Zeit, wenn während des Leistungstests derselbe Codefluss ausgeführt wurde.

Was könnten mögliche Ursachen für das Metaspace-Speicherproblem sein?

Aktuelle Einstellungen sind:

-server -Xms8g -Xmx8g -XX:MaxMetaspaceSize=3200m  -XX:+UseParNewGC 
-XX:+UseConcMarkSweepGC -XX:MaxGCPauseMillis=1000 
-XX:+DisableExplicitGC -XX:+PrintGCDetails 
-XX:-UseAdaptiveSizePolicy -XX:SurvivorRatio=7 -XX:NewSize=5004m 
-XX:MaxNewSize=5004m -XX:MaxTenuringThreshold=12 
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly -XX:+PrintFlagsFinal  
-XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution 
-XX:+PrintGCCause -XX:+PrintAdaptiveSizePolicy 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=3 -XX:GCLogFileSize=200M 

Auch die Anwendung verwendet viel Reflexion. Außerdem verwenden wir einen benutzerdefinierten Klassenlader. Alle von ihnen funktionierten gut in Java 7.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage