This command prints information about active java processes running on a given machine. The output contains the JVMID, the name of the main class and any arguments passed to it or the JVM.
sharfah@starship:~> jps -lmv 3936 sun.tools.jps.Jps -lmv -Xms8m 5184 test.TestClient -Xmx1024m2) jstat - statistics monitoring tool
This command allows you to monitor memory spaces of a JVM. For example, using the "-gcutil" option will show you the utilisation of the eden (E), survivor (S0, S1), old (O) and permanent (P) generations and how long the minor and major GCs are taking. You can gather these statistics continuously by specifying a sampling interval and how many samples you wish to take.
sharfah@starship:~> jstat -gcutil 5184 1s 5 S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 0.00 3.04 85.47 11.68 5 0.009 1 0.023 0.032 0.00 0.00 3.04 85.47 11.68 5 0.009 1 0.023 0.032 0.00 0.00 3.04 85.47 11.68 5 0.009 1 0.023 0.032 0.00 0.00 3.04 85.47 11.68 5 0.009 1 0.023 0.032 0.00 0.00 3.04 85.47 11.68 5 0.009 1 0.023 0.0323) jstack - stack trace
Prints out a complete thread dump of your application (just like "kill -3"). Useful for investigating what your application is doing and identifying deadlocks. 4) jmap - memory map
Use this command to print a histogram of the heap to show you the number of instances of each java class and how much memory they are occupying. You can also dump the heap to a file in binary format and then load it into Eclipse Memory Analyser as I described here.
sharfah@starship:~> jmap -histo 5184 sharfah@starship:~> jmap -dump:format=b,file=heap.bin 51845) jhat - heap analysis tool
This command reads a binary heap file (produced by the
jmapcommand, for example). It launches a local webserver so that you can browse the heap using a web browser. The cool thing is being able to execute your own queries using Object Query Language (OQL) on the heap dump.
sharfah@starship:~> jhat heap.bin6) jinfo - configuration info
Prints out java system properties (like the classpath and library path) and JVM command line flags. Doesn't work on Windows though! Also allows you to enable/disable/change VM flags.
sharfah@starship:~> jinfo -flag PrintGCDetails 4648 -XX:-PrintGCDetails sharfah@starship:~> jinfo -flag +PrintGCDetails 4648