Wie diagnostizieren Sie eine Java-8 metaspace Leck?

Ich habe eine J2EE-Anwendung mit einigen interessanten Verhalten ... der heap verhält sich scheinbar gut, wächst und schrumpft mit der garbage collections, wie erwartet, im Laufe der Zeit. Es gibt keine nennenswerte long-term heap expansion. Jedoch, der metaspace nur hält stetig auf über 20 Mb pro Stunde bis wir Treffer MaxMetaspace und Begegnung eine OOME. Ich habe versucht, sowohl die parallel-und G1-garbage-collectors (jdk1.8.0_40).

Ist die Anwendung nicht immer neu bereitgestellt, die während der Ausführung, also es scheint nicht so, als wäre es die typische classloader Leck. Hat jemand Vorschläge, wie man auf die Spur der Ursache der Undichtigkeit?

  • Haben Sie keine Antwort für diese noch?
  • Können Sie uns mehr Informationen: JEE-server verwendeten Bibliotheken.
  • Dies war ein Versuch, führen Sie eine legacy-J2EE-Anwendung auf JBoss-4.2.3.GA unter Java 8. Dies ist keine unterstützte Konfiguration, aber der Kunde wollte wirklich, es zu versuchen. Ich weiß, es wurden größere änderungen an der JBoss-zum laden von Klassen seit dann, so ich vermute, es war Klasse loader problem. Phillipe ' s erraten, unter Bezug auf die Generierung von proxies kann einige Verdienst haben. Wir schließlich beschlossen, den sauren Apfel beißen" und den port in der app an Wildfly 8.
  • Ich habe auch vor ähnlichen problem, wir verwenden wildfly 10, nach mehreren redeploys der app Metaspace oom-Fehler ausgelöst. Erhöhung der max metaspace ist nur ein workaround, keine Lösung. Ich fand keine Lösung.
Schreibe einen Kommentar