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

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.jarjps -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 MemPID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND4871 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java4872 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.18 java4873 root      20   0 2534780  86036  11264 S  0.0  4.6   0:03.13 java4874 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java4875 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java4876 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java4877 root      20   0 2534780  86036  11264 S  0.0  4.6   0:05.09 java4878 root      20   0 2534780  86036  11264 S  0.0  4.6   0:01.23 java4879 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.00 java4880 root      20   0 2534780  86036  11264 S  0.0  4.6   0:50.16 java4881 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.21 java4882 root      20   0 2534780  86036  11264 S  0.0  4.6   0:00.08 java4884 root      20   0 2534780  86036  11264 S  0.0  4.6   0:05.90 java4885 root      20   0 2534780  86036  11264 S  0.0  4.6   0:08.46 java7340 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: 0jmap -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-b25using thread-local object allocation.
Parallel GC with 18 thread(s)Heap Configuration:MinHeapFreeRatio         = 0MaxHeapFreeRatio         = 100MaxHeapSize              = 16823353344 (16044.0MB)NewSize                  = 350748672 (334.5MB)MaxNewSize               = 5607784448 (5348.0MB)OldSize                  = 702021632 (669.5MB)NewRatio                 = 2SurvivorRatio            = 8MetaspaceSize            = 21807104 (20.796875MB)CompressedClassSpaceSize = 1073741824 (1024.0MB)MaxMetaspaceSize         = 17592186044415 MBG1HeapRegionSize         = 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 Generationcapacity = 1908932608 (1820.5MB)used     = 638166848 (608.6033325195312MB)free     = 1270765760 (1211.8966674804688MB)33.43055932543429% used3744 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-b25using thread-local object allocation.
Parallel GC with 18 thread(s)Heap Configuration:MinHeapFreeRatio         = 0MaxHeapFreeRatio         = 100MaxHeapSize              = 16823353344 (16044.0MB)NewSize                  = 350748672 (334.5MB)MaxNewSize               = 5607784448 (5348.0MB)OldSize                  = 702021632 (669.5MB)NewRatio                 = 2SurvivorRatio            = 8MetaspaceSize            = 21807104 (20.796875MB)CompressedClassSpaceSize = 1073741824 (1024.0MB)MaxMetaspaceSize         = 17592186044415 MBG1HeapRegionSize         = 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 Generationcapacity = 702021632 (669.5MB)used     = 4240872 (4.044410705566406MB)free     = 697780760 (665.4555892944336MB)0.6040942054617485% used3697 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.LinkedBlockingQueue99:           238           5712  java.util.concurrent.LinkedBlockingQueue$Node250:            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     Time1877  3624.2        8     8.8       0.63jstat -class 24864
Loaded  Bytes  Unloaded  Bytes     Time1874  3620.6        0     0.0       0.59

4.2 -compiler 编译统计

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

jstat -compiler 24813
Compiled Failed Invalid   Time   FailedType FailedMethod3493      0       0    14.76          0jstat -compiler 24864
Compiled Failed Invalid   Time   FailedType FailedMethod3206      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 24813S0C    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.635jstat -gc 24864S0C    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.172jstat -gc 24813 250 4S0C    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.905jstat -gc 24864 250 4S0C    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 24813NGCMN    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     5jstat -gccapacity 24864NGCMN    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 24813S0C    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.158jstat -gcnew 24864S0C    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 24813NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC342528.0  5476352.0  1546240.0 1825280.0   8192.0 1825280.0   8192.0  5475328.0  1192960.0    17     5jstat -gcnewcapacity 24864NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC342528.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 24813MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT12800.0  12313.0   1536.0   1354.4   1864192.0    623209.8     17     5    0.476    1.635jstat -gcold 24864MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT12800.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 24813OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT685568.0  10952704.0   1864192.0   1864192.0    17     5    0.476    1.635jstat -gcoldcapacity 24864OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT685568.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 24813MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT0.0  1060864.0    12800.0        0.0  1048576.0     1536.0    17     5    0.476    1.635jstat -gcmetacapacity 24864MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT0.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 24813S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT0.00   0.00  44.76  33.43  96.20  88.18     17    1.158     5    0.476    1.635jstat -gcutil 24864S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT0.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 Method3556     17    1 java/lang/Thread runjstat -printcompilation 24864
Compiled  Size  Type Method3206     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

java常用命令汇总相关推荐

  1. Java常用命令汇总(笔记)

    Java常用命令汇总 文章目录 Java常用命令汇总 1.javac 将文件编译成.class文件 2.java 执行 .class文件,若类中没有main函数,则不能执行. 3.jar 主要用于打包 ...

  2. linux常用命令汇总

    linux常用命令汇总,以便需要时快速查询 中文释义 相应命令 备注 在文件中查找 grep error catalina.out 在catalina.out文件中查找error信息 重启nginx ...

  3. JAVA常用单词汇总

    Java 常用英语汇总 abstract (关键字) access 抽象 ['.bstr.kt] vt.访问,存取 ['.kses]'(n.入口,使用权) n.算法 ['.lg.riem] algor ...

  4. Java常用英语汇总

    英语不好照样可以搞定Java编程-Java常用英语汇总 尚硅谷2016-11-11 14:48 题目:Java常用英语汇总(更新升级版) abstract (关键字) 抽象['.bstr.kt] ac ...

  5. MongoDB 常用命令汇总

    MongoDB 常用命令汇总 mongodb数据库结构与传统关系型数据库对比 MongoDB 创建数据库 创建/切换数据库 查看当前数据库名称 查看所有数据库 MongoDB 删除数据库 删除集合 M ...

  6. Docker常用命令汇总

    Docker常用命令汇总 帮助命令 docker version docker info docker --help 镜像命令 docker images 列出本地主机上的镜像,各个选项说明如下: R ...

  7. python命令大全下载-Python pip 常用命令汇总

    使用了这么就pip命令,但是一直是简单使用,很多命令都是用了查,查了用,今天把常用的命令汇总一下,方便使用. 命令: pip 由上图可以看到 pip 支持一下命令 Commands: install ...

  8. python常用命令大全-Python pip 常用命令汇总

    使用了这么就pip命令,但是一直是简单使用,很多命令都是用了查,查了用,今天把常用的命令汇总一下,方便使用. 命令: pip 由上图可以看到 pip 支持一下命令 Commands: install ...

  9. 史上最全的Linux常用命令汇总①收藏这一篇就够了!(超全,超详细)

    史上最全的Linux常用命令汇总①(超全面!超详细!)收藏这一篇就够了! Linux命令基础 Shell Linux命令分类 Linux命令行的格式 编辑Linux命令行的辅助操作 获取命令帮助的方法 ...

最新文章

  1. CarTool 使用,获取图片资源
  2. 切割图形_3D打印、激光切割、图形化编程,六一科普活动喊你来报名啦!
  3. Nginx学习之HTTP/2.0配置
  4. MyBatis ofType和javaType区别
  5. Fragment 与DialogFragment 相互之间传递数据
  6. 随机数是真是假你说了算???
  7. 用 powershell 脚本 .ps1 写一个自动化的「编译->链接->运行C++文件」脚本
  8. 深入理解注意力机制(Attention Mechanism)和Seq2Seq
  9. mysql如何源码安装_超详细的MySQL源码编译安装与配置 值得收藏!
  10. macOS 输入法快速切换工具 —— KeyboardHolder
  11. udp超过mtu长度 linux,TCP UDP 数据包长度(MSS)总结
  12. 不需要写代码,快速批量修改文件夹中图片的格式
  13. windows 用浏览器打开应用程序的方法
  14. android在线音乐播放器教程,简单实现Android本地音乐播放器
  15. opencv中calcOpticalFlowPyrLK实现的光流法(Lucas-Kanade Method for Sparse Optical Flow)原理解析 (摘要翻译)
  16. fly.js如何使用呢
  17. 启动jupyter notebook 报错:ImportError:DLL load failed,找不到指定模块的解决办法
  18. 遥控汽车网页小游戏html源码
  19. 哈密顿圈 MATLAB程序,matlab求最佳哈密顿圈遇到错误
  20. 10种招聘数据的采集方法

热门文章

  1. Unity优化技巧,此时无光胜有光
  2. 转载]“不能打开暂存盘文件,因为该文件已锁定”解决办法
  3. 共赴数智金融未来,2023数智金融峰会即将召开
  4. Vue关于$on和$emit的理解
  5. python一维数组和二维数组,Python numpy实现二维数组和一维数组拼接的方法
  6. 三维数据入到arcgis平台的解决方案
  7. 室友打了一晚上游戏我学会了使用GDB调试
  8. USERKEY_PLAT_NOMATCH——高德地图经纬度转换API使用报错
  9. 火车票身份证号打码真的安全吗
  10. WPF-10 逻辑树和可视化树