Blog_Definition

Visualize your Solr – Part 4

Patricia Kraft

..., geboren 1988 in Augsburg, studierte Informatik und Multimedia an der Universität Augsburg. Nach dem Erreichen des Masters in diesem Fach stieg sie unmittelbar in die Suchbranche ein und begann 2015 ihre Karriere bei der SHI als Consultant für Search & Big Data. Durch das heterogene Arbeiten an Projekten – sowohl in der Beratung als auch in der Konzeption und Implementierung – erlangte sie einen umfassenden Überblick über alle Projekt-Phasen. Für den SHI-Blog teilt sie ihre Erfahrung aus zahlreichen Projekten in verschiedensten Branchen sowohl aus technischer als auch als aus unternehmerischer Sicht. Lieblingsdateiformat: JSON

Recycle your Garbage

Sie sehen sich vor einem Berg kryptisch formulierter Log-Daten stehen, aus denen Informationen nur schwer zu extrahieren sind? Sie haben eine Idee zur Optimierung Ihrer Systeme, aber wissen nicht, wie Sie diese verifizieren und präsentieren können? Oder wollen Sie einfach mal herausfinden, welche Features Sie in Ihren Online-Shop einbauen könnten? Dann schnappen Sie sich eine Banana, springen Sie in den Zeppelin, browsen Sie durch Graphen und sehen Sie Garbage aus einer anderen View! Wie das geht, was das bringt und wem das hilft, erfahren Sie hier.

Visualisierung von Daten ist ein hilfreiches Werkzeug, um Besonderheiten wie Ausreißer oder Verteilungen hervorzuheben. Außerdem erhöhen visuell ansprechende Daten die Verständlichkeit und können damit als gemeinsame Sprache zwischen Mitarbeitern verschiedener Abteilungen dienen. In den vorangegangenen Blogbeiträgen wurden Methoden vorgestellt, um externe Daten durch Indexierung in einen Solr-Index und Verwendung diverser Visualisierungstools zu veranschaulichen. Doch jede Solr-Instanz produziert auch selbst einige Daten in Form von Logdateien. Hier werden beispielsweise Suchanfragen oder auch Fehlermeldungen von Solr aufgezeichnet. Beginnen die Solr-Logs (welche per Standardeinstellung in /server/logs zu finden sind) meist mit dem Namensmuster „solr.log“, so gibt es doch Dateien, welche aus der Reihe tanzen. Ihre Bezeichnungen beginnen mit „solr_gc.log“. Doch wofür steht dieses „gc“ eigentlich?

GC – Zwei Buchstaben, die Ihr ganzes System außer Gefecht setzen können, denn GC steht für Garbage Collection. Die digitale Müllabfuhr sorgt dafür, dass nicht mehr benötigter Speicherplatz in einer Java Virtual Machine (JVM) freigegeben wird und somit Platz für Neues ist. Da auch Apache Solr in einer JVM läuft, kommt auch hier die Garbage Collection zum Zug. Mit vielen verschiedenen Parametern können die Einstellungen für die Garbage Collection an das jeweilige System angepasst werden. Darunter beispielsweise UseConcMarkSweepGC, UseParNewGC, MaxTenuringThreshold oder NewRatio. Alle diese Einstellungen bestimmen die Art und Weise, wie das System aufgeräumt werden soll.

In bestimmten Intervallen oder durch das Erreichen bestimmter Schwellwerte wird zunächst eine sogenannte Minor Garbage Collection durchgeführt, welche veraltete Daten aus dem Speicher entfernt. Diese Minor Garbage Collection stört den laufenden Betrieb für gewöhnlich wenig, da sie parallel zu Anwendungen ausgeführt werden kann. Sollte die Minor GC allerdings nicht ausreichen, um merklich Speicherplatz freizuräumen, kommt ihre große Schwester, die Major (oder auch Full) Garbage Collection, ins Spiel. Sie entsorgt alles, was nicht mehr gebraucht wird, und ordnet den Speicher gründlich. Um das tun zu können, muss sie allerdings sämtliche Anwendungen für eine gewisse Zeit vollständig anhalten, was den laufenden Betrieb unter Umständen stark beeinträchtigen kann.

Um beobachten zu können, ob das Verhalten der Garbage Collection auch in Ihrem System für Probleme sorgt, gibt es verschiedene Tools mit denen Sie die kryptischen GC-Logs visualisieren können. Eines davon ist der GCViewer. Der Source-Code ist außerdem über github erreichbar.  Ausführen der JAR-Datei startet eine Benutzeroberfläche, über welche GC-Logs (so auch solr_gc.log) eingelesen werden können. Das Programm erstellt daraus ein Histogramm und fasst die beinhalteten Informationen in übersichtlichen Tabellen zusammen.

 

Eine gesunde Garbage Collection sollte in dieser Visualisierung etwa ein Sägezahn-Muster abbilden, wie auf dem Bild zu sehen ist. Sollten vermehrt Major GCs und die damit verbundenen vollständigen GC Pausen auftreten, so ist dies schnell anhand dicker, schwarzer Längsbalken erkennbar. In diesem Fall sollten Sie die Einstellungen Ihrer Garbage Collection für die Anwendung überprüfen. Oft sind unpassend eingestellte Heap Spaces (meist zu klein, oft aber auch zu groß) im Zusammenhang mit der Garbage Collection Störfaktoren.

Ein weiteres, interessantes Tool zur Visualisierung von Garbage Collection Logs, ist GCEasy. GCEasy macht seinem Namen alle Ehre, denn die Auswahl der Logdatei (bevorzugt als Archiv) ist auch bei diesem Werkzeug alles, was Sie selbst tun müssen. Das Programm produziert daraus einen ganzen Report mit einer visuell ansprechenden und verständlichen Zusammenfassung aller in der Logdatei enthaltenen Informationen.

 

Mit den beiden vorgestellten Tools lassen sich Ihre Garbage Collection Logs denkbar simple in anschauliche Grafiken verwandeln. Dadurch sind Sie stets in der Lage, Probleme zu erkennen und behebende Maßnahmen einzuleiten.

Mit diesen kostenlosen Werkzeugen sehen Sie den digitalen Abfall Ihres Solr-Servers aus einer ganz anderen Perspektive: Recylcle your Garbage – and visualize your Solr!

 

Weiterführende Links

Visualize your Solr (1) – Grab a banana!
Visualize your Solr (2) – Jump into the Zeppelin
Visualize your Solr (3) – Browse around
Visualize your Solr (5) – Graph your Stream