阅读本文你可以学到以下命令的常规使用【jps,jinfo,jstat,jmap,jstack,jcmd,jrunscript,jjs】
jps
获取当前运行中java进程,
示例:
jps -lmv 可以打印详细信息
-l 输出main类或jar的全限名,-m传入main方法的参数,-v传入jvm的参数
jinfo
使用 jinfo pid 可以查看当前进程系统属性信息以及进程启动jvm参数信息,jdk版本信息
示例:jinfo pid
jstat
JVM统计检测工具
示例:
jstat -gc pid 1000 10 (打印pid的gc信息,每一秒打印一次,打印10次)
jstat -gcutil pid 1000 10(打印pid的gc百分比信息,每一秒打印一次,打印10次)
说明 C是容量(capacity),U是使用量(utilization)
S0C survivor0区的容量
S0U survivor0区的使用量
S1C survivor1区的容量
S1Usurvivor1区的使用量
EC eden区的容量
EU eden区的使用量
OC old区的容量
OU old区的使用量
MC 元数据区容量
MU 元数据区使用量
CCSC 压缩的class空间容量
CCSU 压缩的class空间使用量
YGC 年轻代GC次数
YGCT 年轻代GC总时间
FGC Full GC 次数
FGCT Full GC总时间
GCT 垃圾收集总时间
jmap
打印堆内存配置和使用信息
jmap -heap pid
看哪些类占用的空间最多
jmap -histo pid
dump 文件输出
jmap -dump:format=b,file=xxxx.hprof pid
jstack
-f 强制执行thread dump 可在进程卡死时使用,需要系统权限
jstack -f pid
-m 混合输出(mixed mode) 将java帧和native帧一起输出
jstack -m pid
-l 输出详细信息,长列表模式,打印相关的锁信息
jstack -l pid
jcmd
查看信息
可以使用 jcmd pid help 获取可以查看当前进程参数信息
// 版本jcmd pid VM.version// 参数jcmd pid VM.flags// 启动命令jcmd pid VM.command_line// 系统参数jcmd pid VM.system_properties// 线程信息jcmd pid VM.Thread.print// GC 占用空间情况jcmd pid GC.class_histogram// GC 年轻代,老年代,元数据区信息jcmd pid GC.heap_info
jrunscript/jjs
jrunscript
当curl 用
jrunscript -e "cat('http://www.baidu.com')"
执行js命令
jrunscript -e "print('hello zuiyu.jvm')"
执行js文件
jrunscript -l js -f /xx/xx/test.js
jjs
交互控制台使用
image-20220109215617800
Java进阶
扫码关注 不迷路
微信:zuiyu17970
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。