Sun liefert in seinem Java Paket das Tool jVisualVM aus. Damit kann man einen Einblick in den inneren Ablauf der Java virtual machine (JVM) gewinnen. Mit dem zusätzlichen Plugin VisualGC auch in den garbage collector. Hier ein Blick auf den VisualGC der Netbeans beobachtet:visualvm-visualgcEs sind dazu lediglich die Bordmittel erforderlich, keine zusätzlichen Java Agents oder ähnliches. Das besonders angenehme: Mittels des jstatd Agenten können auch entfernte Anwendungen beobachtet und ihr Verhalten analysiert werden. Anders als mittels einer JMX Anbdindung können damit sehr komfortabel alle Java Prozesse unter der Benutzerkennung unter der der jstatd läuft aufgerufen werden werden.

Aufgrund des erforderlichen Security Managers habe ich eine Properties Datei (jstatd.all.policy) mit den für jstatd erforderlichen Rechten erstellt:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};

Anschließend wird der jstatd mit dieser Datei für den Java Security Manager gestartet:
jstatd -J-Djava.security.policy=jstatd.all.policy
In meinem Fall habe ich den jstatd hinter einer OpenVPN Verbindung auf einem entfernten Rechner betrieben. Dabei galt es zu verhindern, dass an die (externe) Haupt-IP/Interface des Rechners die RMIRegistry gebunden wird, die der jstatd starte. (Externe IPs sind per Firewall geschützt, und per OpenVPN ist der Zugriff dann auf vertrauenswürdige Hosts limitiert, sowie auch gesichert.)

Dazu startet man den jstatd mit dem zusätzlichen Parameter für die Java Umgebung „java.rmi.server.hostname" – hier kann auch eine IP spezifiziert werden. (Weitere Infos zu den Java RMI Properties.)

Der Aufruf sieht dann so aus (10.21.0.1 ist hier die IP des Interfaces auf das der jstatd binden soll):
jstatd -J-Djava.rmi.server.hostname=10.21.0.1 -J-Djava.security.policy=jstatd.all.policy
Auf diese Weise ist dann ein schneller Zugriff z.B. auf Tomcat oder andere Java Prozesse auf dem Server möglich. (Für Tomcat Monitoring sei an dieser Stelle noch Lambda Probe empfohlen, http://www.lambdaprobe.org/ – auch wenn das Projekt wohl ziemlich tot ist. )