2

OFBiz Profiling mit YourKit

Geschrieben am 28.10.2011 in Allgemein, Technik, Tutorials von Sebastian Leitner

Auf der Jagd nach einigen Memory Leaks musste ich Komponenten in OFBiz auf Speicherverbrauch untersuchen. Mit Googles Hilfe stieß ich auf YourKit (YourKit) ein Java (und .net) Profiling Tool. Aus vorherigen Projekten kannte ich zwar schon den jProfiler, wollte an dieser Stelle aber mal ein neues Tool probieren. YourKit ist wie jProfiler ein kommerzielles Werkzeug welches, zum Testen der Funktionalität, eine Trial Version bietet. Es existieren zwei Alternativen um sich gegen eine OFBiz Instanz zu verbinden. Alternative eins ist direkt aus Eclipse heraus. Die Integration in Eclipse erwies sich als denkbar einfach (YourKit-Eclipse Integration). Es konnte eine neue Profiler Startkonfiguration angelegt werden, diese lädt neben OFBiz parallel eine Profiler Instanz und verknüpft sie miteinander. Somit ist es möglich auch Startressourcen zu untersuchen um mögliche Speicher oder CPU Probleme zu identifizieren. Dies kam für mich aber nicht in Frage, da mein OFBiz in einer Linux Umgebung lief und ich mich remote auf das System verbinden musste. Hierzu musste eine YourKit Installation auf das remote System kopiert werden (es waren keine root Rechte erforderlich), außerdem wurden die OFBiz Startparameter erweitert:

 -agentpath:/tmp/yjp-10.0.1/bin/linux-x86-32/libyjpagent.so=dir=/tmp/yjp-10.0.1/Snapshot/,port=10001,disableexceptiontelemetry,builtinprobes=none,delay=10000,sessionname=Ofbiz_DEV

Der agentpath gibt den Pfad zur Profiler Installation an, wobei hier das verwendete System mit angegeben werden muss (in meinem Fall: linux-x86-32), es bezieht sich übrigens auf die verwendete JVM. Wenn eine 32Bit JVM auf einem 64Bit Linux verwendet wird, wird auch die 32Bit Profiler Bibliothek verwendet. Die Option „dir“ beschreibt das Verzeichnis in dem später Memory Dumps abgelegt werden können und der Session Name macht eine Identifizierung in der GUI einfacher. Der Rest sind Standardparameter, welche aus der Doku übernommen wurden. Nach Start von OFBiz mit den neuen Parametern kann auf dem lokalen Rechner YourKit geladen werden. Der Profiler bietet direkt auf der Startseite die Option: “connect to remote application” unter Angabe der Server IP plus des zuvor festgelegtem Ports (default 10001) wird auf die OFBiz Instanz zugegriffen. OFBiz Profiling mit YourKit Damit haben wir unser Werkzeug um dem Speicherverbrauch auf den Grund zu gehen.

Dieser Artikel gefällt Ihnen? Sagen Sie's Ihren Freunden:

2 Antworten bisher.

  1. Uwe Allner sagt:

    Haben Sie es schon mal mit jvisualvm versucht? Das ist von Haus aus seit Java 5 bei den Bordmitteln dabei, und liefert genau diese Angaben.

    • Hallo Herr Allner,
      natürlich die visualvm oder auch die jConsole sind oft die erste Wahl. Schon alleine durch Ihre Leichtgewichtigkeit.
      YourKit oder auch andere Profiling-Tools geben mir die Möglichkeit noch tiefer in das System zu schauen. Ich kann genau bestimmen welche Methode wie viel Prozessorzeit benötigt und welches Objekt wie viel Speicher. Darüber hinaus können Snapshots vom Speicher gezogen und in einer übersichtlichen Grafik verglichen werden.
      In vielen Fällen reichen die Java bord tools (hier wäre auch noch jmap zu nennen welches eine memory map erzeugt und in Verbindung mit jhat im Browser angezeigt werden kann), bei hartnäckigen Problemen packe ich aber auch gerne mal die größeren Geschütze aus.

      Viele Grüße
      Sascha Rodekamp

Hinterlassen Sie eine Antwort





*