1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java虚拟机内存监控_java虚拟机内存监控工具jps jinfo Jstack jstat jmap jhat使用...

java虚拟机内存监控_java虚拟机内存监控工具jps jinfo Jstack jstat jmap jhat使用...

时间:2023-12-19 22:49:15

相关推荐

java虚拟机内存监控_java虚拟机内存监控工具jps jinfo Jstack jstat jmap jhat使用...

将会打印出很多jvm运行时参数信息,由于比较长这里不再打印出来,可以自己试试,内容一目了然

Jstack(Stack Trace for Java):JVM堆栈跟踪工具

jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64“

命令格式:jstack [ option ] pid

常用参数说明:

-F 当’jstack [-l] pid’没有相应的时候强制打印栈信息

-l 长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.

-m 打印java和native c/c++框架的所有栈信息.

-h | -help打印帮助信息

例如:

Cmd命令行代码

C:\Users\Administrator>jstack1796

-05-2211:42:38

FullthreaddumpJavaHotSpot(TM)ClientVM(20.6-b01mixedmode):

"Worker-30"prio=6tid=0x06514c00nid=0x1018inObject.wait()[0x056af000]

java.lang.Thread.State:TIMED_WAITING(onobjectmonitor)

atjava.lang.Object.wait(NativeMethod)

atorg.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)

-locked<0x1ad84a90>(aorg.eclipse.core.internal.jobs.WorkerPool)

atorg.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)

atorg.eclipse.core.internal.jobs.Worker.run(Worker.java:50)

......

......

......

......

jstat(JVM statistics Monitoriing Tool):JVM统计信息监视工具

对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heapsize和垃圾回收状况的监控

命令格式:jstat[option pid [interval [ s | ms ] [count] ] ]

常用参数说明:

-gcutil 输出已使用空间占总空间的百分比

-gccapacity 输出堆中各个区域使用到的最大和最小空间

例如:每隔1秒监控jvm内存一次,共监控5次

Cmd命令行代码

C:\Users\Administrator>jstat-gccapacity17961s5

NGCMNNGCMXNGCS0CS1CECOGCMNOGCMXOGCOCPGCMNPGCMXPGCPCYGCFGC

13632.0174720.040896.04032.04032.032832.027328.0349568.081684.081684.012288.0262144.080640.080640.04296

13632.0174720.040896.04032.04032.032832.027328.0349568.081684.081684.012288.0262144.080640.080640.04296

13632.0174720.040896.04032.04032.032832.027328.0349568.081684.081684.012288.0262144.080640.080640.04296

13632.0174720.040896.04032.04032.032832.027328.0349568.081684.081684.012288.0262144.080640.080640.04296

13632.0174720.040896.04032.04032.032832.027328.0349568.081684.081684.012288.0262144.080640.080640.04297

Cmd命令行代码

C:\Users\Administrator>jstat-gcutil17961s5

S0S1EOPYGCYGCTFGCFGCTGCT

0.000.000.5253.3599.77420.5139938.11938.632

0.000.000.5253.3599.77420.5139938.11938.632

0.000.000.5253.3599.77420.5139938.11938.632

0.000.000.5253.3599.77420.5139938.11938.632

0.000.000.5253.3599.77420.5139938.11938.632

一些术语的中文解释:

S0C:年轻代中第一个survivor(幸存区)的容量 (字节)

S1C:年轻代中第二个survivor(幸存区)的容量 (字节)

S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)

S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)

EC:年轻代中Eden(伊甸园)的容量 (字节)

EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)

OC:Old代的容量 (字节)

OU:Old代目前已使用空间 (字节)

PC:Perm(持久代)的容量 (字节)

PU:Perm(持久代)目前已使用空间 (字节)

YGC:从应用程序启动到采样时年轻代中gc次数

YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)

FGC:从应用程序启动到采样时old代(全gc)gc次数

FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)

GCT:从应用程序启动到采样时gc用的总时间(s)

NGCMN:年轻代(young)中初始化(最小)的大小 (字节)

NGCMX:年轻代(young)的最大容量 (字节)

NGC:年轻代(young)中当前的容量 (字节)

OGCMN:old代中初始化(最小)的大小 (字节)

OGCMX:old代的最大容量 (字节)

OGC:old代当前新生成的容量 (字节)

PGCMN:perm代中初始化(最小)的大小 (字节)

PGCMX:perm代的最大容量 (字节)

PGC:perm代当前新生成的容量 (字节)

S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

E:年轻代中Eden(伊甸园)已使用的占当前容量百分比

O:old代已使用的占当前容量百分比

P:perm代已使用的占当前容量百分比

S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)

S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节)

ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)

DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)

TT: 持有次数限制

MTT : 最大持有次数限制

jmap( Memory Map for Java):JVM内存映像工具

打印出某个java进程(使用pid)内存内的所有‘对象’的情况(如:产生那些对象,及其数量)

命令格式:jmap [ option ] pid

常用参数说明:

-dump:[live,]format=b,file=使用二进制形式输出jvm的heap内容到文件中,live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.

-histo[:live]打印每个class的实例数目,内存占用,类全名信息.VM的内部类名字开头会加上前缀”*”.如果live子参数加上后,只统计活的对象数量.

-F强迫.在pid没有相应的时候使用-dump或者-histo参数.在这个模式下,live子参数无效.

例如:以二进制形式输入当前堆内存映像到文件data.hprof中

Cmd命令行代码

jmap-dump:live,format=b,file=data.hprof1796

生成的文件可以使用jhat工具进行分析,在OOM(内存溢出)时,分析大对象,非常有用

通过使用如下参数启动JVM,也可以获取到dump文件:

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=./java_pid.hprof

在jvm发生内存溢出时生成内存映像文件

jhat(JVM Heap Analysis Tool):JVM堆转储快照分析工具

用于对JAVAheap进行离线分析的工具,他可以对不同虚拟机中导出的heap信息文件进行分析,如LINUX上导出的文件可以拿到WINDOWS上进行分析,可以查找诸如内存方面的问题。

命令格式:jhat dumpfile(jmap生成的文件)

例如:分析jmap导出的内存映像

Cmd命令行代码

jhatdata.hprof

MAT(Memory Analyzer Tool):一个基于Eclipse的内存分析工具

这是eclipse的一个插件,安装后可以打开xxx.hprof文件,进行分析,比jhat更方便使用,有些时候由于线上xxx.hprof文件过大,直接使用jhat进行初步分析了,可以的话拷贝到本地分析效果更佳。

图形化监控工具:

在JDK安装目录bin下面有两个可视化监控工具

1. JConsole(Java Monitoring and Management Console) 基于JMX的可视化管理工具。

2. VisualVM(All-in-one Java Troubleshooting Tool)随JDK发布的最强大的运行监视和故障处理程序。

推荐使用VisualVM,他有很多插件,可以更方便的监控运行时JVM

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。