4.2:JDK的命令行工具
JDK1.6以上,JMX管理默认开启,部分基于JMX的工具也可以使用。开启参数为-Dcom.sun.management.jmxremote。
jps:显示指定系统内所有的HotSpot虚拟机进程
jps -m
1202 Application
32123 Jps -m
jps -l
1202 com.aliyun.tianji.cloudmonitor.Application
32232 sun.tools.jps.Jps
jps -v
1202 Application -Djava.compiler=none -XX:-UseGCOverheadLimit -XX:NewRatio=1 -XX:SurvivorRatio=8 -XX:+UseSerialGC -Djava.io.tmpdir=../../tmp -Xms16m -Xmx32m -Djava.library.path=../lib:../../lib -Dwrapper.key=HnV4qxt_ROE9dWaD -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.disable_console_input=TRUE -Dwrapper.pid=1150 -Dwrapper.version=3.5.27 -Dwrapper.native_library=wrapper -Dwrapper.arch=x86 -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1
32297 Jps -Dapplication.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64 -Xms8m
jstat:用于收集HotSpot虚拟机各方面的运行数据
jstat - [-t] [-h] [ []] interval查询间隔,count查询次数
jstat -gc 2784 250 20 每250毫秒查询一次2784垃圾收集状况,一共20次
jinfo:显示虚拟机配置信息,可以查看未被显示支持的参数的系统默认值,比如
jinfo -flag CMSInitiatingOccupancyFraction 1444
jmap:生成虚拟机的内存转储快照heapdump文件
jmap [option] vmid
option有多种,具体看书
jhat:用于分析heapdump文件,它会建立一个http/html服务器,让用户可以在浏览器上查看分析结果。一般不用,因为有更方便的。
jstack:显示虚拟机的线程快照,显示当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的目的是定位线程出现长时间停顿的原因,如线程间死锁,死循环,请求外部资源导致的长时间等待都是导致线程长时间停顿的常见原因
jstack [option] vmid
jstack -F 当正常输出的请求不被响应时,强制输出线程堆栈
jstack -l 除堆栈外,显示关于锁的附加信息
-m 如果调用本地方法的话,可以显示C/C++堆栈