JVM自带工具
一、JPS(虚拟机进程状况工具)
显示虚拟机进程状况
[root@5be18ebdbeeb bin]# jps 212 jboss-modules.jar 59997 Jps [root@5be18ebdbeeb bin]# jps -l ---------------->输出主类全名/jar包/jar路径 212 /opt/wildfly/jboss-modules.jar 60181 sun.tools.jps.Jps [root@5be18ebdbeeb bin]# jps -v ---------------->输出启动时虚拟机参数 212 jboss-modules.jar -D[Standalone] -XX:MaxPermSize=512m -Djava.net.preferIPv4Stack=true -Dsun.jnu.encoding=UTF-8 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintGCDateStamps -Xloggc:/opt/logs/verbose.gc -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/logs/ -Djboss.server.log.dir=/opt/logs -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Xms1536m -Xmx1536m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -Dcom.ibm.mq.cfg.TCP.Connect_Timeout=30 -Dorg.jboss.boot.log.file=/opt/logs/server.log -Dlogging.configuration=file:/opt/wildfly/standalone/configuration/logging.properties 60245 Jps -Dapplication.home=/opt/wildfly/openjdk/openjdk-1.8.0_92 -Xms8m [root@5be18ebdbeeb bin]# jps -m ----------------->输出启动时传给主类main函数的参数 212 jboss-modules.jar -mp /opt/wildfly/modules org.jboss.as.standalone -Djboss.home.dir=/opt/wildfly -Djboss.server.base.dir=/opt/wildfly/standalone 60327 Jps -m
二、JSTAT(虚拟机统计信息监视工具)
可 以显示本地或者远程[1]虚拟机进程中的类装载、 内存、 垃圾收集、 JIT编译等运行数据。
下面命令每250毫秒查询一次进程212垃圾收集状况,一共查询20次
[root@5be18ebdbeeb bin]# jstat -gc 212 250 20
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
52416.0 52416.0 4016.6 0.0 419456.0 255112.3 1048576.0 765991.2 156244.0 148388.5 19044.0 16796.5 12176 242.765 38 11.269 254.034
52416.0 52416.0 4016.6 0.0 419456.0 294670.0 1048576.0 765991.2 156244.0 148388.5 19044.0 16796.5 12176 242.765 38 11.269 254.034
52416.0 52416.0 4016.6 0.0 419456.0 324664.6 1048576.0 765991.2 156244.0 148388.5 19044.0 16796.5 12176 242.765 38 11.269 254.034
52416.0 52416.0 4016.6 0.0 419456.0 355080.5 1048576.0 765991.2 156244.0 148388.5 19044.0 16796.5 12176 242.765 38 11.269 254.034
52416.0 52416.0 4016.6 0.0 419456.0 400447.1 1048576.0 765991.2 156244.0 148388.5 19044.0 16796.5 12176 242.765 38 11.269 254.034
52416.0 52416.0 0.0 6351.0 419456.0 15766.8 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 46682.4 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 78462.5 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 123397.5 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 152957.3 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 190997.4 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 209889.2 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 224649.0 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 243613.0 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 260014.5 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 289131.2 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 316332.1 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 353905.3 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 378318.7 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
52416.0 52416.0 0.0 6351.0 419456.0 397566.6 1048576.0 766049.3 156244.0 148388.5 19044.0 16796.5 12177 242.773 38 11.269 254.041
三、JINFO(Java配置信息工具)
实时地查看和调整虚拟机各项参数,提供了运行期修改参数的能力。
[jbossuser@5be18ebdbeeb bin]$ jinfo -flag PrintGC 212 --------------------->查看参数
-XX:+PrintGC
[jbossuser@5be18ebdbeeb bin]$ jinfo -flag -PrintGC 212 --------------------->关闭GC输出
[jbossuser@5be18ebdbeeb bin]$ jinfo -flag PrintGC 212
-XX:-PrintGC
[jbossuser@5be18ebdbeeb bin]$ jinfo -flag +PrintGC 212 --------------------->启用GC输出
[jbossuser@5be18ebdbeeb bin]$ jinfo -flag PrintGC 212
-XX:+PrintGC
四、JMAP(Java内存映像工具)
生成堆转储快照,即heap dump。另外还可以查看堆的详细信息。
[jbossuser@5be18ebdbeeb bin]$ jmap -dump:format=b,file=/opt/logs/212.dump 212 Dumping heap to /opt/logs/212.dump ... Heap dump file created
五、JHAT(Java heap dump分析工具)
分析jmap生成的堆转储快照。不使用,建议使用mat:https://www.cnblogs.com/havery/articles/9629717.html。
六、JSTACK(JAVA堆栈跟踪工具)
生成虚拟机当前时刻的线程快照,即thread dump或者javacore文件。线程快照是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、 死循环、 请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。
[jbossuser@5be18ebdbeeb bin]$ jstack -l 212 > /opt/logs/212_t.dump
七、JConsole(可视化的Java监视与管理控制台)
基于JMX的可视化监视、 管理工具。 它管理部分的功能是针对JMX MBean进行管理,可以实时监视内存和线程运行状况。
八、VisualVM(多合一故障处理工具)
运行监视和故障处理程序
可以实现运行监视、 故障处理、性能分析。
还具备了插件扩展功能的特性,通过插件扩展支持,VisualVM可以做到:显示虚拟机进程以及进程的配置、 环境信息;监视应用程序的CPU、 GC、 堆、 方法区以及线程的信息;dump以及分析堆转储快照;方法级的程序运行性能分析;离线程序快照:收集程序的运行时配置、 线程dump、 内存dump等信息建立一个快照,其他plugins的无限的可能性……

浙公网安备 33010602011771号