轻松使用JVM自带工具

1. JPS

jps:显示虚拟机进程状况
jps

[root@ecs-7f00-0004 ~]# jps
130672 jar
1109 WrapperSimpleApp
89764 yunlian-truck-homepage.jar
60454 Jps
29591 yunlian-truck-bill-facade.jar
113529 yunlian-truck-back.jar
22110 yunlian-truck-ucenter.jar
70462 yunlian-truck-websocket.jar

jps -l:出主类全名/jar包/jar路径

[root@ecs-7f00-0004 ~]# jps -l
60480 sun.tools.jps.Jps
130672 yunlian-truck-message.jar
1109 org.tanukisoftware.wrapper.WrapperSimpleApp
89764 ../yunlian/yunlian-truck-homepage.jar
29591 ../yunlian/yunlian-truck-bill-facade.jar
113529 ../yunlian/yunlian-truck-back.jar
22110 ../yunlian/yunlian-truck-ucenter.jar
70462 ../yunlian/yunlian-truck-websocket.jar

jps -v:输出启动时虚拟机参数

[root@ecs-7f00-0004 ~]# 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

jps -m:输出启动时传给主类main函数的参数

[root@ecs-7f00-0004 ~]# jps -m
89764 yunlian-truck-homepage.jar -server -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=64m --spring.profiles.active=dev -Djava.awt.headless=true
29591 yunlian-truck-bill-facade.jar -server -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=64m --spring.profiles.active=dev -Djava.awt.headless=true
113529 yunlian-truck-back.jar -server -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=64m --spring.profiles.active=dev -Djava.awt.headless=true
22110 yunlian-truck-ucenter.jar -server -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=64m --spring.profiles.active=dev -Djava.awt.headless=true
70462 yunlian-truck-websocket.jar -server -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=64m --spring.profiles.active=dev -Djava.awt.headless=true


2. JSTAT

JSTAT(虚拟机统计信息监视工具):
可以显示本地或者远程[1]虚拟机进程中的类装载、 内存、 垃圾收集、 JIT编译等运行数据
2.1 垃圾回收器统计

[root@ecs-7f00-0004 ~]# jstat -gc 70462 250 20   -->每250毫秒查询一次进程70462垃圾收集状况,一共查询20次

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
1024.0 1024.0  0.0   784.0  37888.0  28981.3   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  28981.3   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  28981.3   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  28981.3   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  28981.3   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  28981.3   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  28992.5   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  28992.5   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  28992.5   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  28992.5   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047
1024.0 1024.0  0.0   784.0  37888.0  29259.9   139776.0   87255.4   63788.0 62371.7 7500.0 7221.4   5041   17.658   4      0.389   18.047

S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:伊甸园区的大小(Eden区,亚当和夏娃偷吃禁果生娃娃的地方,用来表示内存首次分配的区域)
EU:伊甸园区的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

jstat -gccapacity 堆内存统计
jstat -gcnew 新生代垃圾回收统计
jstat -gcnewcapacity 新生代内存统计
jstat -gcold 老年代垃圾回收统计
jstat -gcoldcapacity 老年代内存统计
jstat -gcmetacapacity 元数据空间统计
jstat -gcutil 垃圾回收统计
jstat -printcompilation JVM编译方法统计


3. JINFO(Java配置信息工具)
4. JMAP(Java内存映像工具)

生成堆转储快照,即heap dump。另外还可以查看堆的详细信息。

[root@ecs-7f00-0004 ~]# jmap -dump:format=b,file=websockt.dump 70462
Dumping heap to /root/websockt.dump ...
Heap dump file created
5. JHAT(Java heap dump分析工具)

分析jmap生成的堆转储快照。不使用,建议使用mat:https://www.cnblogs.com/havery/articles/9629717.html。

6. JSTACK(JAVA堆栈跟踪工具)

生成虚拟机当前时刻的线程快照,即thread dump或者javacore文件。线程快照是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、 死循环、 请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因

7. JConsole(可视化的Java监视与管理控制台)

基于JMX的可视化监视、 管理工具。 它管理部分的功能是针对JMX MBean进行管理,可以实时监视内存和线程运行状况。

你可能感兴趣的:(轻松使用JVM自带工具)