1,jps JVM进程状态工具
1)jps [options] [hostid]
image.pngjava virtual machine process status tool
hostid不指定默认本机
options可选参数:
jps:默认输出进程id和主类名|jar名
-q:不输出类名、jar名和main方法参数。即只输出pid
-m:输出传入main方法的参数
-l:输出数据主类|jar的全限定名
-v:输出传入JVM的参数
2)示例
2,jstack 某个进程的线程堆栈信息
1)jstack [option] pid
image.pngFull thread dump
2)首先使用ps 或者 jps找到pid
使用top命令查看线程信息top -H -p 31678, TIME是各线程消耗cpu的时间
printf "%x\n" 31923 转换成16进制 7cb3
jstack 31678 | grep 7cb3 查看该线程信息
jstack > pid.txt; grep "7cb3" pid.txt
image.png
3,jmap和jhat
1)
image.pngjmap -heap pid
查看进程堆内存使用情况
2)jmap -histo[:live] pid 查看堆中对象的数目和大小
image.png
image.png
3)jmap把进程内存使用情况dump下来,使用jhat分析。
jmap -dump:format=b,file=/tmp/dump.dat 21711
jhat -J-Xmx512m -port 9998 /tmp/dump.dat
4)可选参数
image.png
4,jstat 监控JVM
1)
image.pngjstat -gc 21711 1000
2) image.png
3)可选参数
image.png
网友评论