1. jps
用来查看JVM信息,所有具有访问权限的java进程的具体状态。包括PID, 进程启动路径以及启动参数等。 可以理解为linux上的PS 子集。
命令格式: jps [-q] [-mlvV] [<hostid>]
-q 只输出pid
-m 输出传递给main方法的参数
-l 输出应用程序住类的完整包名,或者是应用程序jar文件的完整路径
-v 输出传给JVM的参数
```
sudo -u admin jps
28580 Jps
6272 Bootstrap
sudo -u admin jps -q
26626
6272
sudo -u admin jps -l
6272 org.apache.catalina.startup.Bootstrap
28298 sun.tools.jps.Jps
sudo -u admin jps -m
6272 Bootstrap start
27633 Jps -m
sudo -u admin jps localhost:7001
28070 Jps
6272 Bootstrap
```
2. jmap
简介: 打印java进程中的所有对象情况,例如产生哪些对象,以及对象数量
命令格式: jmap [option] <pid>
2.1 sudo -u admin jmap -dump:live,format=b,file=heap 5929 使用二进制形式,将JVMheap内容输出到outputFile, live 为可选项,表示只输出活的对象到文件。
2.2 jmap -finalizerinfo <PID> 打印正在等候回收的对象信息
sudo -u admin jmap -finalizerinfo 5929
Attaching to process ID 5929, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.65-b04-internal
Number of objects pending for finalization: 0
2.3 jmap -heap <PID> 打印heap的概要信息,GC使用算法等信息;
sudo -u admin jmap -heap 5929
Attaching to process ID 5929, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.65-b04-internal
using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1342177280 (1280.0MB)
NewSize = 335544320 (320.0MB)
MaxNewSize = 335544320 (320.0MB)
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 10
PermSize = 100663296 (96.0MB)
MaxPermSize = 629145600 (600.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 307625984 (293.375MB)
used = 64660584 (61.665138244628906MB)
free = 242965400 (231.7098617553711MB)
21.019220535024765% used
Eden Space:
capacity = 279707648 (266.75MB)
used = 57251752 (54.599525451660156MB)
free = 222455896 (212.15047454833984MB)
20.468425661353386% used
From Space:
capacity = 27918336 (26.625MB)
used = 7408832 (7.06561279296875MB)
free = 20509504 (19.55938720703125MB)
26.537512837441316% used
To Space:
capacity = 27918336 (26.625MB)
used = 0 (0.0MB)
free = 27918336 (26.625MB)
0.0% used
concurrent mark-sweep generation:
capacity = 1006632960 (960.0MB)
used = 126755184 (120.88316345214844MB)
free = 879877776 (839.1168365478516MB)
12.591996192932129% used
Perm Generation:
capacity = 161787904 (154.29296875MB)
used = 114364384 (109.06637573242188MB)
free = 47423520 (45.226593017578125MB)
70.68784573660092% used
42485 interned Strings occupying 4413184 bytes.
2.4 jmap -histo[:live] 打印每个类的实例数目,内存占用情况,类全名。
sudo -u admin jmap -histo:live 5929
num #instances #bytes class name
----------------------------------------------
1: 200445 29877368 <constMethodKlass>
2: 200445 27273048 <methodKlass>
3: 17102 20779408 <constantPoolKlass>
4: 184717 20052536 [B
5: 187747 19194584 [C
6: 17097 12442624 <instanceKlassKlass>
7: 13082 11212768 <constantPoolCacheKlass>
8: 19783 7304520 [I
9: 184531 4428744 java.lang.String
10: 48520 3881600 java.lang.reflect.Method
11: 5919 3642984 <methodDataKlass>
12: 60424 3383744 org.codehaus.groovy.runtime.metaclass.MetaMethodIndex$Entry
13: 98877 3164064 java.util.HashMap$Entry
14:
用来查看JVM信息,所有具有访问权限的java进程的具体状态。包括PID, 进程启动路径以及启动参数等。 可以理解为linux上的PS 子集。
命令格式: jps [-q] [-mlvV] [<hostid>]
-q 只输出pid
-m 输出传递给main方法的参数
-l 输出应用程序住类的完整包名,或者是应用程序jar文件的完整路径
-v 输出传给JVM的参数
```
sudo -u admin jps
28580 Jps
6272 Bootstrap
sudo -u admin jps -q
26626
6272
sudo -u admin jps -l
6272 org.apache.catalina.startup.Bootstrap
28298 sun.tools.jps.Jps
sudo -u admin jps -m
6272 Bootstrap start
27633 Jps -m
sudo -u admin jps localhost:7001
28070 Jps
6272 Bootstrap
```
2. jmap
简介: 打印java进程中的所有对象情况,例如产生哪些对象,以及对象数量
命令格式: jmap [option] <pid>
2.1 sudo -u admin jmap -dump:live,format=b,file=heap 5929 使用二进制形式,将JVMheap内容输出到outputFile, live 为可选项,表示只输出活的对象到文件。
2.2 jmap -finalizerinfo <PID> 打印正在等候回收的对象信息
sudo -u admin jmap -finalizerinfo 5929
Attaching to process ID 5929, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.65-b04-internal
Number of objects pending for finalization: 0
2.3 jmap -heap <PID> 打印heap的概要信息,GC使用算法等信息;
sudo -u admin jmap -heap 5929
Attaching to process ID 5929, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.65-b04-internal
using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1342177280 (1280.0MB)
NewSize = 335544320 (320.0MB)
MaxNewSize = 335544320 (320.0MB)
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 10
PermSize = 100663296 (96.0MB)
MaxPermSize = 629145600 (600.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 307625984 (293.375MB)
used = 64660584 (61.665138244628906MB)
free = 242965400 (231.7098617553711MB)
21.019220535024765% used
Eden Space:
capacity = 279707648 (266.75MB)
used = 57251752 (54.599525451660156MB)
free = 222455896 (212.15047454833984MB)
20.468425661353386% used
From Space:
capacity = 27918336 (26.625MB)
used = 7408832 (7.06561279296875MB)
free = 20509504 (19.55938720703125MB)
26.537512837441316% used
To Space:
capacity = 27918336 (26.625MB)
used = 0 (0.0MB)
free = 27918336 (26.625MB)
0.0% used
concurrent mark-sweep generation:
capacity = 1006632960 (960.0MB)
used = 126755184 (120.88316345214844MB)
free = 879877776 (839.1168365478516MB)
12.591996192932129% used
Perm Generation:
capacity = 161787904 (154.29296875MB)
used = 114364384 (109.06637573242188MB)
free = 47423520 (45.226593017578125MB)
70.68784573660092% used
42485 interned Strings occupying 4413184 bytes.
2.4 jmap -histo[:live] 打印每个类的实例数目,内存占用情况,类全名。
sudo -u admin jmap -histo:live 5929
num #instances #bytes class name
----------------------------------------------
1: 200445 29877368 <constMethodKlass>
2: 200445 27273048 <methodKlass>
3: 17102 20779408 <constantPoolKlass>
4: 184717 20052536 [B
5: 187747 19194584 [C
6: 17097 12442624 <instanceKlassKlass>
7: 13082 11212768 <constantPoolCacheKlass>
8: 19783 7304520 [I
9: 184531 4428744 java.lang.String
10: 48520 3881600 java.lang.reflect.Method
11: 5919 3642984 <methodDataKlass>
12: 60424 3383744 org.codehaus.groovy.runtime.metaclass.MetaMethodIndex$Entry
13: 98877 3164064 java.util.HashMap$Entry
14: