Java JVM
查看java进程:
ps -ef | grep java
jps -l (显示java进程的Id和软件名称)
jps -lmv(显示java进程的Id和软件名称;显示启动main输入参数;虚拟机参数)
jmap:
jmap -heap pid 查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况
-
jmap -histo[:live] pid 查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象(这个命令执行,JVM会先触发gc,然后再统计信息)
jmap -dump:format=b,file=dumpFileName 用jmap把进程内存使用情况dump到文件中,再用jhat分析查看
jmap命令详解:jmap命令详解
jstat:
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
exp: jstat -gcutil pid 5000
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 — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
jstat命令详解:jdk8下jstat命令详解
jhat:
jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>
exp: jhat -port 9988 dump.hprof
browser: http://localhost:9988 (html文件最后)
注意:
注意如果Dump⽂文件太⼤大,可能需要加上-J-Xmx512m这种参数指定最⼤大堆内存,即jhat -J-Xmx512m -port 9998 /tmp/dump.dat。然后就可以在浏览器中输⼊入主机地址:9998查看
参考:jhat使用
jstack
:
jsatck -l 2020 > dump.txt:将2020进程信息dump到文件中
top -Hp 2020 :查询进程2020中的线程使用情况
printf "%x\n" 30437:将30437线程号转换为16进制
参考:cpu飙高的检查步骤
jinfo
:
来源:oschina
链接:https://my.oschina.net/whling/blog/3159849