关于java:JVM常用排查工具你了解多少

浏览本文你能够学到以下命令的惯例应用【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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理