java常用命令汇总

本文参考多篇大神的文章,不再一一列举,在此表示感谢!

1.进程和线程

1.1 jps 查看进程号 pid  jinfo查看参数

ps -ef | grep java | grep -v grep
root     24813     1  0 7月28 ?       00:14:19 java -DclientId=server01 -DgroupId=AAA -DserverIP=hb01 -DserverListenPort=8999 -DserviceRespRequested=true -Dlog4j.root=/home/ntlog/nettyClient01 -jar /home/nettyclient_jar/nettyclient.jar
root     24864     1  0 7月28 ?       00:12:17 java -DclientId=server02 -DgroupId=AAA -DserverIP=hb01 -DserverListenPort=8999 -DserviceRespRequested=true -Dlog4j.root=/home/ntlog/nettyClient02 -jar /home/nettyclient_jar/nettyclient.jar

jps -ml | grep -iv jps
24864 /home/nettyclient_jar/nettyclient.jar
24813 /home/nettyclient_jar/nettyclient.jar

# 查看参数
jinfo 7
$ jinfo -flag <参数名> 虚拟机进程ID
[root@k8s-openapi-68c98997f4-nznhn home]# jinfo -flag NewRatio 7
-XX:NewRatio=1
#打印jvm全部的参数
[root@diamond-dt-b75bb4d4d-kxf9p home]# jinfo -flags 9
#输出当前 jvm 的全部系统属性
[root@diamond-dt-b75bb4d4d-kxf9p home]# jinfo -sysprops 9

1.2 查看进程包含的线程

ps -Lfp pid (ps -mp pid -o THREAD或tid或time)

[root@huabe01 ~]# ps -Lfp 4871
UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
root      4871     1  4871  0   15 Jun10 ?        00:00:00 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4872  0   15 Jun10 ?        00:00:00 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4873  0   15 Jun10 ?        00:00:03 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4874  0   15 Jun10 ?        00:00:00 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4875  0   15 Jun10 ?        00:00:00 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4876  0   15 Jun10 ?        00:00:00 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4877  0   15 Jun10 ?        00:00:05 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4878  0   15 Jun10 ?        00:00:01 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4879  0   15 Jun10 ?        00:00:00 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4880  0   15 Jun10 ?        00:00:49 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4881  0   15 Jun10 ?        00:00:00 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4882  0   15 Jun10 ?        00:00:00 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4884  0   15 Jun10 ?        00:00:05 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  4885  0   15 Jun10 ?        00:00:08 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar
root      4871     1  7340  0   15 Jun10 ?        00:00:00 java -jar /home/netty/out/artifacts_server/nettyserver_jar/nettyserver.jar

查看线程的资源使用状况
top -Hp pid

top - 16:33:38 up 22:22,  6 users,  load average: 0.30, 0.15, 0.10
Threads:  15 total,   0 running,  15 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1882028 total,    85068 free,   842592 used,   954368 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   844324 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 4871 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java
 4872 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.18 java
 4873 root      20   0 2534780  86036  11264 S  0.0  4.6   0:03.13 java
 4874 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java
 4875 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java
 4876 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java
 4877 root      20   0 2534780  86036  11264 S  0.0  4.6   0:05.09 java
 4878 root      20   0 2534780  86036  11264 S  0.0  4.6   0:01.23 java
 4879 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java
 4880 root      20   0 2534780  86036  11264 S  0.0  4.6   0:50.16 java
 4881 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.21 java
 4882 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.08 java
 4884 root      20   0 2534780  86036  11264 S  0.0  4.6   0:05.90 java
 4885 root      20   0 2534780  86036  11264 S  0.0  4.6   0:08.46 java
 7340 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java

2.jstack输出线程栈信息

计算线程(如cpu负载较高的线程)的十六进制编码,输出线程的堆栈信息 

[root@huabe01 ~]# printf "%x\n" 4872
1308
[root@huabe01 ~]# jstack 4871 | grep 1308
"DestroyJavaVM" #9 prio=5 os_prio=0 tid=0x00007f694c008800 nid=0x1308 waiting on condition [0x0000000000000000]

jstack 3799 > /tmp/3799.log

其他参数
-l 长列表. 打印关于锁的附加信息,例如属于java.util.concurrent 的 ownable synchronizers列表.
-F 当’jstack [-l] pid’没有相应的时候强制打印栈信息
-m 打印java和native c/c++框架的所有栈信息.
-h | -help 打印帮助信息

3.jmap(Memory Map)堆内存信息

jmap -heap 4871
查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况

3.1 -dump 使用hprof二进制形式,输出jvm的heap内容到文件

注意:JVM 生成 Heap Dump 的时候,虚拟机是暂停一切服务的。如果是线上系统执行 Heap Dump 时需要注意。

3.1.1 手动生成

jmap -dump:[live,]format=b,file=<filename> live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.

jmap -dump:live,format=b,file=/home/livejmapfile.hprof 24813
jmap -dump:format=b,file=/home/alljmapfile.hprof 24813
39M     /home/alljmapfile.hprof
12M     /home/livejmapfile.hprof

3.1.2 自动生成dump文件

  1.  -XX:+HeapDumpOnOutOfMemoryError 
    当OutOfMemoryError发生时自动生成 Heap Dump 文件。这是一个非常有用的参数,因为当你需要分析Java内存使用情况时,往往是在OOM(OutOfMemoryError)发生时。
  2.  -XX:+HeapDumpBeforeFullGC 
    当 JVM 执行 FullGC 前执行 dump。
  3.  -XX:+HeapDumpAfterFullGC 
    当 JVM 执行 FullGC 后执行 dump。
  4.  -XX:+HeapDumpOnCtrlBreak 
    交互式获取dump。在控制台按下快捷键Ctrl + Break时,JVM就会转存一下堆快照。
  5.  -XX:HeapDumpPath=d:\test.hprof 
    指定 dump 文件存储路径。

3.1.3 查看dump文件

1.jhat(Java Heap Analysis Tool)2.VisualVM(jvisualvm.exe)3.MAT(内存分析工具)

jhat  浏览器访问 http://127.0.0.1:9998

root@ubuntu:/# jhat -port 9998 /tmp/dump.dat
Reading from /tmp/dump.dat...
Dump file created Tue Jan 28 17:46:14 CST 2014
Snapshot read, resolving...
Resolving 132207 objects...
Chasing references, expect 26 dots..........................
Eliminating duplicate references..........................
Snapshot resolved.
Started HTTP server on port 9998
Server is ready.

3.2 -finalizerinfo 打印正等候回收的对象的信息

jmap -finalizerinfo 24813
Attaching to process ID 24813, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.40-b25
Number of objects pending for finalization: 0

jmap -finalizerinfo 24864
Attaching to process ID 24864, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.40-b25
Number of objects pending for finalization: 0

3.3 -heap 打印heap(堆)的概要信息,GC使用的算法,heap的配置及JVM堆内存的使用情况

jmap -heap 24813
Attaching to process ID 24813, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.40-b25

using thread-local object allocation.
Parallel GC with 18 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 16823353344 (16044.0MB)
   NewSize                  = 350748672 (334.5MB)
   MaxNewSize               = 5607784448 (5348.0MB)
   OldSize                  = 702021632 (669.5MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 1221591040 (1165.0MB)
   used     = 568369176 (542.0390853881836MB)
   free     = 653221864 (622.9609146118164MB)
   46.52696011915739% used
From Space:
   capacity = 8388608 (8.0MB)
   used     = 0 (0.0MB)
   free     = 8388608 (8.0MB)
   0.0% used
To Space:
   capacity = 8388608 (8.0MB)
   used     = 0 (0.0MB)
   free     = 8388608 (8.0MB)
   0.0% used
PS Old Generation
   capacity = 1908932608 (1820.5MB)
   used     = 638166848 (608.6033325195312MB)
   free     = 1270765760 (1211.8966674804688MB)
   33.43055932543429% used

3744 interned Strings occupying 293792 bytes.


jmap -heap 24864
Attaching to process ID 24864, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.40-b25

using thread-local object allocation.
Parallel GC with 18 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 16823353344 (16044.0MB)
   NewSize                  = 350748672 (334.5MB)
   MaxNewSize               = 5607784448 (5348.0MB)
   OldSize                  = 702021632 (669.5MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 245366784 (234.0MB)
   used     = 25936128 (24.734619140625MB)
   free     = 219430656 (209.265380859375MB)
   10.570350060096153% used
From Space:
   capacity = 2097152 (2.0MB)
   used     = 1989936 (1.8977508544921875MB)
   free     = 107216 (0.1022491455078125MB)
   94.88754272460938% used
To Space:
   capacity = 7864320 (7.5MB)
   used     = 0 (0.0MB)
   free     = 7864320 (7.5MB)
   0.0% used
PS Old Generation
   capacity = 702021632 (669.5MB)
   used     = 4240872 (4.044410705566406MB)
   free     = 697780760 (665.4555892944336MB)
   0.6040942054617485% used

3697 interned Strings occupying 289960 bytes.

3.4 -histo[:live] 

jmap -histo:live 24813
jmap -histo:live 24864

[root@ops-registry ~]# jmap -histo:live 3799 | grep java.util.concurrent.LinkedBlockingQueue
  99:           238           5712  java.util.concurrent.LinkedBlockingQueue$Node
 250:            22           1056  java.util.concurrent.LinkedBlockingQueue

打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.
class name是对象类型,说明如下:
B  byte
C  char
D  double
F  float
I  int
J  long
Z  boolean
[  数组,如[I表示int[]
[L+类名 其他对象

采用jmap -histo pid>a.log日志将其保存,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。

3.5 -permstat (版本<=JDK7)

jmap -permstat 24813
jmap -permstat 24864
打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来. 

3.6 其他

-J 传递参数给jmap启动的jvm

4.jstat查看jvm的GC情况 (单位: KB)

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量
命令格式:jstat [-命令选项] [vmid] [采样间隔时间/毫秒] [采样次数]
example: jstat -gc 24813 250 4

4.1 -class 类加载统计 

Loaded:加载class的数量
Bytes:所占用空间大小
Unloaded:未加载数量
Bytes:未加载占用空间
Time:时间

jstat -class 24813
Loaded  Bytes  Unloaded  Bytes     Time
  1877  3624.2        8     8.8       0.63

jstat -class 24864
Loaded  Bytes  Unloaded  Bytes     Time
  1874  3620.6        0     0.0       0.59

4.2 -compiler 编译统计

Compiled:编译数量。
Failed:失败数量
Invalid:不可用数量
Time:时间
FailedType:失败类型
FailedMethod:失败的方法

jstat -compiler 24813
Compiled Failed Invalid   Time   FailedType FailedMethod
    3493      0       0    14.76          0

jstat -compiler 24864
Compiled Failed Invalid   Time   FailedType FailedMethod
    3206      2       0    12.74          1 java/lang/ThreadLocal get

4.3 -gc 垃圾回收统计

S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
OC:老年代大小
OU:老年代使用大小
MC:元空间大小
MU:元空间使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

堆内存 = 年轻代 + 年老代 + 永久代 新生区+养老区+元空间(方法区的具体实现)
年轻代 = Eden区 + 两个Survivor区(From和To)
S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)
EC、EU:Eden区容量和使用量
OC、OU:年老代容量和使用量
MC、MU:方法区容量和使用量
YGC、YGT:年轻代GC次数和GC耗时
FGC、FGCT:Full GC次数和Full GC耗时
GCT:GC总耗时

jstat -gc 24813
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
8192.0 8192.0  0.0    0.0   1192960.0 476534.9 1864192.0   623209.8  12800.0 12313.0 1536.0 1354.4     17    1.158   5      0.476    1.635

jstat -gc 24864
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
7680.0 2048.0  0.0   1943.3 239616.0 17799.2   685568.0    4141.5   12800.0 12231.0 1536.0 1357.2      7    0.172   0      0.000    0.172

jstat -gc 24813 250 4
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
7168.0 7680.0  0.0   384.0  1523712.0 1469136.0 1293824.0   386288.1  13056.0 12374.9 1536.0 1354.4     19    1.379   6      0.527    1.905
7168.0 7680.0  0.0   384.0  1523712.0 1469136.0 1293824.0   386288.1  13056.0 12374.9 1536.0 1354.4     19    1.379   6      0.527    1.905
7168.0 7680.0  0.0   384.0  1523712.0 1469136.0 1293824.0   386288.1  13056.0 12374.9 1536.0 1354.4     19    1.379   6      0.527    1.905
7168.0 7680.0  0.0   384.0  1523712.0 1469136.0 1293824.0   386288.1  13056.0 12374.9 1536.0 1354.4     19    1.379   6      0.527    1.905

jstat -gc 24864 250 4
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
7680.0 2048.0  0.0   1943.3 239616.0 42096.4   685568.0    4141.5   12800.0 12231.0 1536.0 1357.2      7    0.172   0      0.000    0.172
7680.0 2048.0  0.0   1943.3 239616.0 42096.4   685568.0    4141.5   12800.0 12231.0 1536.0 1357.2      7    0.172   0      0.000    0.172
7680.0 2048.0  0.0   1943.3 239616.0 42096.4   685568.0    4141.5   12800.0 12231.0 1536.0 1357.2      7    0.172   0      0.000    0.172
7680.0 2048.0  0.0   1943.3 239616.0 42096.4   685568.0    4141.5   12800.0 12231.0 1536.0 1357.2      7    0.172   0      0.000    0.172

4.4 -gccapacity 堆内存统计

NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0C:第一个幸存区大小
S1C:第二个幸存区的大小
EC:伊甸园区的大小
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:当前老年代大小
MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代gc次数
FGC:老年代GC次数

jstat -gccapacity 24813
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC
342528.0 5476352.0 1546240.0 8192.0 8192.0 1192960.0   685568.0 10952704.0  1864192.0  1864192.0      0.0 1060864.0  12800.0      0.0 1048576.0   1536.0     17     5

jstat -gccapacity 24864
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC
342528.0 5476352.0 292864.0 7680.0 2048.0 239616.0   685568.0 10952704.0   685568.0   685568.0      0.0 1060864.0  12800.0      0.0 1048576.0   1536.0      7     0

4.5 -gcnew 新生代垃圾回收统计

S0C:第一个幸存区大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
TT:对象在新生代存活的次数
MTT:对象在新生代存活的最大次数
DSS:期望的幸存区大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间

jstat -gcnew 24813
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
8192.0 8192.0    0.0    0.0  1  15 8192.0 1192960.0 495515.1     17    1.158

jstat -gcnew 24864
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
7680.0 2048.0    0.0 1943.3  4  15 8192.0 239616.0  18491.3      7    0.172

4.6 -gcnewcapacity 新生代内存统计

NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0CMX:最大幸存1区大小
S0C:当前幸存1区大小
S1CMX:最大幸存2区大小
S1C:当前幸存2区大小
ECMX:最大伊甸园区大小
EC:当前伊甸园区大小
YGC:年轻代垃圾回收次数
FGC:老年代回收次数

jstat -gcnewcapacity 24813
  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC
  342528.0  5476352.0  1546240.0 1825280.0   8192.0 1825280.0   8192.0  5475328.0  1192960.0    17     5

jstat -gcnewcapacity 24864
  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC
  342528.0  5476352.0   292864.0 1825280.0   7680.0 1825280.0   2048.0  5475328.0   239616.0     7     0

4.7 -gcold 老年代垃圾回收统计

MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
OC:老年代大小
OU:老年代使用大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

jstat -gcold 24813
   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT
 12800.0  12313.0   1536.0   1354.4   1864192.0    623209.8     17     5    0.476    1.635

jstat -gcold 24864
   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT
 12800.0  12231.0   1536.0   1357.2    685568.0      4141.5      7     0    0.000    0.172

4.8 -gcoldcapacity 老年代内存统计

OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:老年代大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

jstat -gcoldcapacity 24813
   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT
   685568.0  10952704.0   1864192.0   1864192.0    17     5    0.476    1.635

jstat -gcoldcapacity 24864
   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT
   685568.0  10952704.0    685568.0    685568.0     7     0    0.000    0.172

4.9 -gcpermcapacity 永久代空间统计(版本<=JDK7)

PGCMN:最小永久代容量
PGCMX:最大永久代容量
PGC:当前新生成的永久代空间大小
PC :永久代空间大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

4.10 -gcmetacapacity 元数据空间统计 (版本>=JDK8)

MCMN: 最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

jstat -gcmetacapacity 24813
   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT
       0.0  1060864.0    12800.0        0.0  1048576.0     1536.0    17     5    0.476    1.635

jstat -gcmetacapacity 24864
   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT
       0.0  1060864.0    12800.0        0.0  1048576.0     1536.0     7     0    0.000    0.172

4.11 -gcutil 总结垃圾回收统计

S0:幸存1区当前使用比例
S1:幸存2区当前使用比例
E:伊甸园区使用比例
O:老年代使用比例
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

jstat -gcutil 24813
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
  0.00   0.00  44.76  33.43  96.20  88.18     17    1.158     5    0.476    1.635

jstat -gcutil 24864
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
  0.00  94.89  10.28   0.60  95.55  88.36      7    0.172     0    0.000    0.172

4.12  -printcompilation JVM编译方法统计

Compiled:最近编译方法的数量
Size:最近编译方法的字节码数量
Type:最近编译方法的编译类型
Method:方法名标识

jstat -printcompilation 24813
Compiled  Size  Type Method
    3556     17    1 java/lang/Thread run

jstat -printcompilation 24864
Compiled  Size  Type Method
    3206     42    1 io/netty/util/internal/InternalThreadLocalMap setIndexedVariable

5.其他工具

5.1 jconsole

jconsole远程连接,必须配置JMX连接参数

java 
-Djava.rmi.server.hostname=10.160.13.111  #远程服务器ip,即本机ip
-Dcom.sun.management.jmxremote #允许JMX远程调用
-Dcom.sun.management.jmxremote.port=3214  #自定义jmx 端口号
-Dcom.sun.management.jmxremote.ssl=false  # 是否需要ssl 安全连接方式
-Dcom.sun.management.jmxremote.authenticate=false #是否需要秘钥
-jar test.jar

5.2 jvisualvm

5.3 jcmd

jcmd $pid GC.run

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值