监控jvm常用的5个命令行工具

描述

常用的几个命令行工具有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 -

其中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 

JVM

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • JVM

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分