Untersuchung von OOM und anderen JVM-Problemen

Wenn Sie mit einer großen Lucene/Solr-Installation arbeiten, stoßen Sie manchmal auf Speicherprobleme oder Probleme mit der Garbage Collection. Meiner Erfahrung nach kommt das nicht häufig vor, aber es ist wie im Leben: Es passiert. Wann immer ich auf solche Probleme stoße, verlasse ich mich auf eine Reihe von kostenlosen Tools, um das Problem zu untersuchen. Es gibt noch viele andere kostenlose Tools, die ich ausprobiert habe, aber im Laufe der Zeit habe ich die folgenden als besonders nützlich empfunden:

jmap http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html

Dies ist ein großartiges kleines Tool, mit dem Sie Live-Speicherinformationen von laufenden Java-Anwendungen erhalten. jmap -histo ist ein sehr nützlicher Befehl. Er zeigt ein nettes kleines Histogramm des Heaps für einen laufenden Prozess an. Es ist oft viel einfacher, dieses Tool zu verwenden, um zu sehen, was den ganzen RAM beansprucht, als einen Profiler einzuschalten, zumal jmap heutzutage mit den meisten JDKs mitgeliefert wird.

VisualGC http://java.sun.com/performance/jvmstat/visualgc.html

Ein großartiges Tool, das die Vorteile der jstat-Instrumentierung nutzt, die heutzutage Teil aller JVMs ist, um Ihnen eine visuelle Darstellung des Speicherbedarfs einer Live-Anwendung zu zeigen. Damit können Sie Ihren Heap verfolgen und beobachten, wie sich der Speicherplatz füllt und überläuft usw. Dies ist ein sehr cooles Tool, mit dem Sie herumspielen können. Es ist sehr nützlich, um ein Gefühl dafür zu bekommen, wie die Garbage Collection in Ihrer Anwendung funktioniert.

jstatd http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstatd.html

Damit können Sie die meisten dieser Tools aus der Ferne verwenden. Das ist jetzt etwas veraltet, denn ich glaube, die neuesten Java-Versionen erlauben es Ihnen, einfach einen Befehlszeilenparameter zu verwenden, wenn Sie die Java-Anwendung für Fernverbindungen starten.

jconsole http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html

jconsole ist ein leistungsstarkes Tool zur Fernüberwachung und -verwaltung für die Java-Plattform. Wenn Sie es noch nicht selbst benutzt haben, sollten Sie unbedingt einige Zeit mit diesem Tool verbringen. Mit diesem GUI-Tool können Sie eine Fülle von Live-Statistiken und JVM-Informationen anzeigen. Java 1.5 und höher wird mit jconsole geliefert.

Netbeans Profiler http://www.netbeans.org/

Der Profiler, der in Netbeans enthalten ist, ist erstklassig und sehr einfach zu bedienen. Ich verwende Eclipse, habe aber auch Netbeans installiert, um einige der kleinen Vorteile wie den Profiler zu nutzen. Netbeans selbst ist auch immer besser geworden, aber es hat mich noch nicht von Eclipse weggezogen. Netbeans hat den besten und am einfachsten zu bedienenden kostenlosen Profiler, den ich je benutzt habe (Netbeans Profiler ist auch Teil des nächsten Tools).

VisualVM https://visualvm.dev.java.net/

Dies ist ein großartiges Open-Source-VM-Tool, das die Fähigkeiten von jconsole mit dem Netbeans-Profiler und Plugin-Framework kombiniert. Es ist ein sehr cooler Wrapper für viele bestehende Java-Tools, der praktisch unbegrenzt erweiterbar ist. Sehr interessant und sehr nützlich.

Einige der jstat-Tools werden mit Java 1.5-Distributionen und höher ausgeliefert (abhängig von der Distribution), aber wenn Sie Java 1.4 verwenden, sollten Sie sich http://java.sun.com/performance/jvmstat/ ansehen.

Diese Tools eignen sich hervorragend für die Fehlersuche bei RAM- und Garbage Collection-Problemen. Um Ihren Werkzeugkasten für die Garbage Collection zu erweitern, schauen Sie sich auch Folgendes an: http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html

Das Ausprobieren der verschiedenen verfügbaren Garbage Collection-Optionen und die Überwachung mit einigen der oben genannten Tools kann ein sehr effektiver Angriff auf eine schlechte GC-Leistung sein.

You Might Also Like

Wie Lenovo die Suche zu einem strategischen Wachstumstreiber in der KI-Ära machte

Erfahren Sie, wie Lenovo mit Lucidworks die Suche in einen strategischen Wachstumstreiber...

Read More

Der Stand der generativen KI 2025: 3 Fragen, um Ihre Bereitschaft für agenturische KI zu verstehen

Wie gut sind Unternehmen auf agentenbasierte KI vorbereitet? Die Daten von Lucidworks...

Read More

Wir geben unsere Gewinner des Superstars of Search Award 2025 bekannt: Mouser, TE, und Coppel

Wir feiern 3 unglaubliche Lucidworks-Kunden, die ihre Sucherfahrung verändert und hervorragende Geschäftsergebnisse...

Read More

Quick Links