JVM:JVM调优-命令学习

jps

显示系统中所有的hotspot虚拟机进程。
格式:

jps [options] [hostid]

参数:

-l:输出主类全名或者jar文件
-v:输出jvm启动时显式指定的参数
-m:输出jvm启动时传给main函数的参数

举例:

//查询有erp_data 的java进程
jps -l -v -m  | grep  erp_data

jstat

用户监控虚拟机运行时信息。

格式:

jstat [option] LVMID [interval] [count]

参数:

[option] : 操作参数
LVMID : 本地虚拟机进程ID
[interval] : 连续输出的时间间隔
[count] : 连续输出的次数

举例:

jstat -gc 1262 2000 20
意思每隔2000ms输出1262的gc情况,一共输出20次

S0C    S1C     S0U     S1U   EC       EU        OC         OU        PC       PU         YGC    YGCT    FGC    FGCT     GCT   
26112.0 24064.0 6562.5  0.0   564224.0 76274.5   434176.0   388518.3  524288.0 42724.7    320    6.417   1      0.398    6.815

S0C : survivor0区的总容量
S1C : survivor1区的总容量
S0U : survivor0区已使用的容量
S1U : survivor1区已使用的容量
EC : Eden区的总容量
EU : Eden区已使用的容量
OC : Old区的总容量
OU : Old区已使用的容量
PC 当前perm的容量 (KB)
PU perm的使用 (KB)
YGC : 新生代垃圾回收次数
YGCT : 新生代垃圾回收时间
FGC : 老年代垃圾回收次数
FGCT : 老年代垃圾回收时间
GCT : 垃圾回收总消耗时间

jmap

jmap(JVM Memory Map)命令用于生成heap dump文件,如果不使用这个命令,还阔以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候·自动生成dump文件。
jmap不仅能生成dump文件,还阔以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等。

jmap -dump:live,format=b,file=dump.hprof 28920
dump堆栈信息到本地文件
jmap -histo:live 28920 | more
打印堆的对象统计,包括对象数、内存大小等等 

(因为在dump:live前会进行full gc,如果带上live则只统计活对象,因此不加live的堆大小要大于加live堆的大小 )

jstack

用于生成当前时刻的堆栈快照。
线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。

// 打印匹配的上下5行
//11477 进程  线程2f47 16进制
jstack 11477  | grep 2f47  -C5 --color

参考:
https://blog.csdn.net/ityouknow/article/details/78209205

猜你喜欢

转载自blog.csdn.net/qq_28605513/article/details/85235722