Open bingoogolapple opened 7 years ago
一个图形化界面,可以观察到 Java 进程的 GC、class、内存等信息
观察运行中的 JVM 物理内存的占用情况 参数如下:
jmap -heap 5412
jmap -heap `jps -v | grep tomcat-8000 | awk '{print $1}'`
jmap -histo:live 14304
将内存使用的详细情况输出到文件,并在浏览器中查看
jmap -dump:format=b,file=heapDump 14304
jhat -port 5000 heapDump
这是 JDK 命令中比较重要,也是相当实用的一个命令,可以观察到 ClassLoader,Compiler,gc 相关信息,具体参数如下:
-class 统计 ClassLoader 行为信息
-gc 统计jdk gc 时 heap 信息
-gccapacity 统计不同的 generations 相应的 heap 容量情况
-gccause 统计 gc 的情况和引起 gc 的事件
-gcnew 统计 gc 时,新生代的情况
-gcnewcapacity 统计 gc 时,新生代 heap 容量
-gcold 统计 gc 时,老年区的情况
-gcoldcapacity 统计 gc 时,老年区 heap 容量
-gcpermcapacity 统计 gc 时,permanent 区 heap 容量
-gcutil 统计 gc 时,heap 情况
S0 Heap 上的 Survivor space 0 区已使用空间的百分比
S1 Heap 上的 Survivor space 1 区已使用空间的百分比
E Heap 上的 Eden space 区已使用空间的百分比
O Heap 上的 Old space 区已使用空间的百分比
M 元数据区使用比例
CCS 压缩使用比例
YGC 从应用程序启动到采样时发生 Young GC 的次数
YGCT 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC 从应用程序启动到采样时发生 Full GC 的次数
FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
每秒钟一次,一共5次,-h3 表示每三行打印一下标题,最后一个参数不指定则一直打印
jstat -gc 14304
jstat -gc 14304 1000 5
jstat -gcutil -h3 14304 1000 9
JVisualVM 安装 MBeans 插件的步骤:工具(T) – 插件(G) …… 其他插件的安装过程基本一致
jvisualvm
jmc
java -jar gcviewer_1.3.4.jar gc.log
java -jar gcviewer_1.3.4.jar gc.log summary.csv chart.png
java -jar -agentlib:hprof=heap=sites -Xms2g -Xmx2g -Xss256k -XX:+UseG1GC -Xloggc:./log/G1.log -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintGCDetails tuning-1.0.jar
jps Java命令学习系列(一)jps
用来查看 JVM 里面所有进程的具体状态, 包括进程 ID,进程启动的路径等等。与 unix 上的 ps 类似,用来显示本地的 java 进程,可以查看本地运行着几个 java 程序,并显示他们的进程号