1 jps 【運行的進程】
作用:列舉出執行的進程信息。
[root@localhost ~]# jps -q
34744
40321
[root@localhost ~]# jps -m
34744 Bootstrap start
40341 Jps -m
[root@localhost ~]# jps -l
40361 sun.tools.jps.Jps
34744 org.apache.catalina.startup.Bootstrap
[root@localhost ~]# jps -v
34744 Bootstrap -Djava.util.logging.config.file=/opt/web/mobile.x.x.x/8102/conf/logging.properties -Xms6000M -Xmx6000M -Xmn2000M -XX:PermSize=500M -XX:MaxPermSize=500M -XX:+AggressiveOpts -XX:+UseAdaptiveSizePolicy -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:ParallelGCThreads=12 -XX:ParallelGCThreads=12 -Dsun.rmi.transport.connectionTimeout=1000 -Dsun.rmi.transport.tcp.responseTimeout=5000 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8849 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.251.17 -Djava.endorsed.dirs=/opt/web/mobile.x.x.x/8102/endorsed -Dcatalina.base=/opt/web/mobile.x.x.x/8102 -Dcatalina.home=/opt/web/mobile.x.x.x/8102 -Djava.io.tmpdir=/opt/web/mobile.x.x.x/8102/temp
40386 Jps -Denv.class.path=.:/usr/java/jdk1.6/lib/tools.jar -Dapplication.home=/usr/java/jdk1.6 -Xms8m
2 jstat 【一段時間以內的統計信息】
主要是統計信息
[root@localhost 8102]# jstat -class 40479
Loaded Bytes Unloaded Bytes Time
2514 5280.2 0 0.0 1.14
[root@localhost 8102]# jstat -gc 40479
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
204800.0 204800.0 0.0 0.0 1638400.0 1048649.3 4096000.0 0.0 512000.0 20272.0 0 0.000 0 0.000 0.000
[root@localhost 8102]# jstat -gccapacity 40479
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC
2048000.0 2048000.0 2048000.0 204800.0 204800.0 1638400.0 4096000.0 4096000.0 4096000.0 4096000.0 512000.0 512000.0 512000.0 512000.0 0 0
[root@localhost 8102]# jstat -gcutil 40479
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 64.00 0.00 3.96 0 0.000 0 0.000 0.000
[root@localhost 8102]# jstat -gccause 40479
S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC
0.00 0.00 64.00 0.00 3.96 0 0.000 0 0.000 0.000 No GC No GC
[root@localhost 8102]# jstat -gcnew 40479
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
204800.0 204800.0 0.0 0.0 15 15 0.0 1638400.0 1048649.3 0 0.000
[root@localhost 8102]# jstat -gcold 40479
PC PU OC OU YGC FGC FGCT GCT
512000.0 20280.9 4096000.0 0.0 0 0 0.000 0.000
[root@localhost 8102]# jstat -gcnewcapacity 40479
NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
2048000.0 2048000.0 2048000.0 204800.0 204800.0 204800.0 204800.0 1638400.0 1638400.0 0 0
3. jinfo [配置信息]
查詢進程的配置信息,可以動態調整
[root@localhost 8102]# jinfo -flag CMSInitiatingOccupancyFraction 40479
-XX:CMSInitiatingOccupancyFraction=-1
4 jmap 【某個時間點的內存映像】
[root@localhost 8102]# jmap -heap 40479
Attaching to process ID 40479, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 20.1-b02
using parallel threads in the new generation.
using thread-local object allocation.
Mark Sweep Compact GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 6291456000 (6000.0MB)
NewSize = 2097152000 (2000.0MB)
MaxNewSize = 2097152000 (2000.0MB)
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 524288000 (500.0MB)
MaxPermSize = 524288000 (500.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 1887436800 (1800.0MB)
used = 1208046816 (1152.0832214355469MB)
free = 679389984 (647.9167785644531MB)
64.00462341308594% used
Eden Space:
capacity = 1677721600 (1600.0MB)
used = 1208046816 (1152.0832214355469MB)
free = 469674784 (447.9167785644531MB)
72.00520133972168% used
From Space:
capacity = 209715200 (200.0MB)
used = 0 (0.0MB)
free = 209715200 (200.0MB)
0.0% used
To Space:
capacity = 209715200 (200.0MB)
used = 0 (0.0MB)
free = 209715200 (200.0MB)
0.0% used
tenured generation:
capacity = 4194304000 (4000.0MB)
used = 0 (0.0MB)
free = 4194304000 (4000.0MB)
0.0% used
Perm Generation:
capacity = 524288000 (500.0MB)
used = 20789552 (19.826461791992188MB)
free = 503498448 (480.1735382080078MB)
3.9652923583984374% used
[root@localhost 8102]#
5 jhat 【與jmap合作】
---
6 jstack [查看某時刻的運行棧]
"catalina-exec-4" daemon prio=10 tid=0x00007f8f9800e000 nid=0xa059 waiting on condition [0x00007f8f73dfc000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000006e6c06020> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- None
"catalina-exec-3" daemon prio=10 tid=0x00007f8f9800a800 nid=0xa058 waiting on condition [0x00007f8f73efd000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000006e6c06020> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- None
JConsole
可以理解為上面所有命令的可視化工具