1.6.4 Javaprozess-Monitoring mit jconsole, jinfo, jps
1.6.4 Javaprozess-Monitoring mit jconsole, jinfo, jpsMonitoring mit jconsole
jconsole ist eine grafische Javaanwendung die es erlaubt die Konfiguration eines Javapozess' zur Laufzeit zu beobachten. Einige der Eigenschaften die beobachtet werden können sind:
- Speicherverbrauch
- Parameter mit denen die VM konfiguriert ist
- genauer Typ der VM
- CPU-Verbrauch
- Anzahl der Threads
- Anzahl geladene Klassen
- ...
Die Verwendung von jconsole geschieht wie folgt:
1. Starten eines Javaprogramm
Starten eines (länger) laufenden Javaprogramm
Starten des Programm DemoFrame
java DemoFrame
2. Bestimmen der Pozess-Id des laufenden Javaprogramms
Jeder Prozess des Betriebssystems hat eine eindeutige Nummer den "Process Identifier". Das Kommando jps listet unabhängig vom Betriebssystem alle Javaprozesse.
jps 254 16964 Jps 16959 DemoFrame
3. Starten von jconsole
jconsole 16959
Wichtig: Das Javaprogramm darf zum Zeitpunkt an dem jps und jconsole aufgerufen werden noch nicht beendet sein!
Laufende jconsole Anwendung:
Monitoring mit jinfo
jinfo liest ebenfalls die wichtigsten Kenndaten eines laufenden Prozesses aus und gibt sie auf der der Konsole aus.
Das erfassen der ProzessId geschieht auch mit dem Hilfsprogramm jps:
1. Starten des Javaprogramms
Starten (länger) laufenden Javaprogramm
Starten des Programm DemoFrame
java DemoFrame
2. Bestimmen der Pozess-Id des laufenden Javaprogramms
Pegasus:bin sschneid$ jconsole 16959 Pegasus:bin sschneid$ jps 254 17168 Jps 17166 DemoFrame
3. Starten von jinfo
Pegasus:bin sschneid$ jinfo 17166 Attaching to process ID 17166, please wait... Debugger attached successfully. Client compiler detected. JVM version is 16.3-b01-279 Java System Properties: java.runtime.name = Java(TM) SE Runtime Environment sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Libraries java.vm.version = 16.3-b01-279 awt.nativeDoubleBuffering = true gopherProxySet = false mrj.build = 10M3065 java.vm.vendor = Apple Inc. java.vendor.url = http://www.apple.com/ path.separator = : java.vm.name = Java HotSpot(TM) Client VM file.encoding.pkg = sun.io sun.java.launcher = SUN_STANDARD user.country = DE sun.os.patch.level = unknown java.vm.specification.name = Java Virtual Machine Specification user.dir = /Users/sschneid/Documents/JavaKurs/beispiele/l1/HelloWorld java.runtime.version = 1.6.0_20-b02-279-10M3065 java.awt.graphicsenv = apple.awt.CGraphicsEnvironment java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/endorsed os.arch = i386 apple.awt.graphics.UseOpenGL = false java.io.tmpdir = /var/folders/UO/UOnPVFsvGEO5k3UJnjadeE+++TI/-Tmp-/ line.separator = java.vm.specification.vendor = Sun Microsystems Inc. os.name = Mac OS X sun.jnu.encoding = MacRoman java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java java.specification.name = Java Platform API Specification java.class.version = 50.0 sun.management.compiler = HotSpot Client Compiler os.version = 10.6.4 http.nonProxyHosts = local|*.local|169.254/16|*.169.254/16 user.home = /Users/sschneid user.timezone = java.awt.printerjob = apple.awt.CPrinterJob file.encoding = MacRoman java.specification.version = 1.6 java.class.path = . user.name = sschneid apple.awt.graphics.UseQuartz = false java.vm.specification.version = 1.0 java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home sun.arch.data.model = 32 user.language = de java.specification.vendor = Sun Microsystems Inc. awt.toolkit = apple.awt.CToolkit java.vm.info = mixed mode java.version = 1.6.0_20 java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsfd.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar java.vendor = Apple Inc. file.separator = / java.vendor.url.bug = http://bugreport.apple.com/ sun.io.unicode.encoding = UnicodeLittle sun.cpu.endian = little mrj.version = 1060.1.6.0_20-279 socksNonProxyHosts = local|*.local|169.254/16|*.169.254/16 ftp.nonProxyHosts = local|*.local|169.254/16|*.169.254/16 sun.awt.exception.handler = apple.awt.CToolkit$EventQueueExceptionHandler sun.cpu.isalist = VM Flags:
- 6211 views