Hung,Deadlocked, Looping Process
Post-Mortem Diagnostics,Memory Leaks
Monitoring
OtherFunctions.
· Print thread stack for all Java threads:
o Control-Break
o jstack pid
· Detect deadlocks:
o Request deadlock detection:
JConsole tool, Threads tab
o Print information on deadlocked threads:
Control-Break
o Print lock information for a process:
jstack -l pid
· Get a heap histogram for a process:
o Start Java process with -XX:+PrintClassHistogram, then Control-Break
o jmap -histo pid
· Dump Java heap for a process in binary format to file:
o jmap -dump:format=b,file= filename pid
· Examine the fatal error log file. Default file name is hs_err_pid pid .log in the working directory.
· Create a heap dump:
o Start the application with HPROF enabled: java -agentlib:hprof=file= file,format=b application; then Control-Break
o Start the application with HPROF enabled: java -agentlib:hprof=heap=dumpapplication
o JConsole tool, MBeans tab
o Start VM with -XX:+HeapDumpOnOutOfMemoryError; if OutOfMemoryError is thrown, VM generates a heap dump.
· Browse Java heap dump:
o jhat heap-dump-file
· Get a heap histogram for a process:
o Start Java process with -XX:+PrintClassHistogram, then Control-Break
o jmap -histo pid
( jstat is not available on Windows 98 or Windows ME.)
Note: The vmID argument for the jstat command is the virtual machine identifier. See the jstatman page for a detailed explanation.
· Print statistics on the class loader:
o jstat -class vmID
· Print statistics on the compiler:
o Compiler behavior: jstat -compiler vmID
o Compilation method statistics: jstat -printcompilation vmID
· Print statistics on garbage collection:
o Summary of statistics: jstat -gcutil vmID
o Summary of statistics, with causes: jstat -gccause vmID
o Behavior of the gc heap: jstat -gc vmID
o Capacities of all the generations: jstat -gccapacity vmID
o Behavior of the new generation: jstat -gcnew vmID
o Capacity of the new generation: jstat -gcnewcapacity vmID
o Behavior of the old and permanent generations: jstat -gcold vmID
o Capacity of the old generation: jstat -gcoldcapacity vmID
o Capacity of the permanent generation: jstat -gcpermcapacity vmID
· Monitor objects awaiting finalization:
o JConsole tool, VM Summary tab
o getObjectPendingFinalizationCount method injava.lang.management.MemoryMXBean class
· Monitor memory:
o Heap allocation profiles via HPROF: java -agentlib:hprof=heap=sites
o JConsole tool, Memory tab
o Control-Break prints generation information.
· Monitor CPU usage:
o By thread stack: java -agentlib:hprof=cpu=samples application
o By method: java -agentlib:hprof=cpu=times application
o JConsole tool, Overview and VM Summary tabs
· Monitor thread activity:
o JConsole tool, Threads tab
· Monitor class activity:
o JConsole tool, Classes tab
· Interface with the instrumented Java virtual machines:
o Monitor for the creation and termination of instrumented VMs (not Windows 98 or Windows ME): jstatd daemon
o List the instrumented VMs (not Windows 98 or Windows ME): jps
o Provide interface between remote monitoring tools and local VMs (not Windows 98 or Windows ME): jstatd daemon
o Request garbage collection: JConsole tool, Memory tab
· Dynamically set, unset, or change the value of certain Java VM flags for a process:
o jinfo -flag flag pid
· Pass a Java VM flag to the virtual machine:
o jconsole -J flag ...
o jhat -J flag ...
· Report on monitor contention:
o java -agentlib:hprof=monitor=y application
· Evaluate or execute a script in interactive or batch mode:
o jrunscript
· Interface dynamically with an MBean, via JConsole tool, MBean tab:
o Show tree structure.
o Set an attribute value.
o Invoke an operation.
o Subscribe to notification.
· Run interactive command-line debugger:
o Launch a new VM for the class: jdb class
o Attach debugger to a running VM: jdb -attach address.
No comments:
Post a Comment