监控jvm的工具

 

常用的几个命令行工具有jps、jstat、jinfo、jmap、jstack等。这几个工具可以安装openjdk-devel-debug包。...





常用的几个命令行工具有jps、jstat、jinfo、jmap、jstack等。这几个工具可以通过安装openjdk-devel-debug包获取。

yum install -y java-1.8.0-openjdk-devel-debug

1. jps 类似linux的ps命令,常用选项有

-l 输出应用程序main class的完整package名或者应用程序的jar文件完整路径名

-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null

-v 输出传递给JVM的参数

示例:

jps -lvm

2. jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,用以判断JVM是否存在内存问题。

语法: jstat - [-t] [-h]

[ []]

其中vmid指的是java进程pid,interval为间隔时间,单位是毫秒,count为次数。

常用用法:

jstat -gcutil 20659 1000 2

输出内容为:

S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT

0.00  99.38  65.57   3.61  97.37  89.84      1    0.015     0    0.000    0.015

0.00  99.38  65.57   3.61  97.37  89.84      1    0.015     0    0.000    0.015

S0  — Heap上的 Survivor space 0 区已使用空间的百分比

S1  — Heap上的 Survivor space 1 区已使用空间的百分比

E   — Heap上的 Eden space 区已使用空间的百分比

O   — Heap上的 Old space 区已使用空间的百分比

P   — Perm space 区已使用空间的百分比

YGC — 从应用程序启动到采样时发生 Young GC 的次数

YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)

FGC — 从应用程序启动到采样时发生 Full GC 的次数

FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)

GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

3. jinfo用来查看jvm配置参数。

常用用法:

jinfo -flags 20659 //其中后面的数字是java进程pid

输出内容如下:

Attaching to process ID 20659, please wait...

Debugger attached successfully.

Server compiler detected.

JVM version is 25.161-b14

Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=67108864 -XX:MaxHeapSize=1069547520 -XX:MaxNewSize=356515840 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=22020096 -XX:OldSize=45088768 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC

Command line:  -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

4. jmap用来查看指定java进程内存使用情况。

常用用法:

jmap pid #打印内存使用的摘要信息

jmap –heap pid #java heap信息

jmap -histo:live pid #统计对象count ,live表示在使用

jmap -histo pid >mem.txt #打印比较简单的各个有多少个对象占了多少内存的信息,一般重定向到一个文件

jmap -dump:format=b,file=mem.dat pid #将内存使用的详细情况输出到mem.dat 文件

5 jstack用于查看进程内线程栈的工具。当程序出现死锁时,我们可以通过jstack打印线程栈找到问题。

用法是:

 jstack pid

-end-
阿铭linux|每日干货
往期文章回顾
而立之年他选择了转型

这个成功男人的女人不简单

直播课 | 戏说运维何去何从

MySQL延迟主从复制




    关注 阿铭linux


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册