阅读本文你可以学到以下命令的常规使用【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进阶
扫码关注 不迷路
【JVM常用排查工具你了解多少】微信:zuiyu17970
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)