jstat: 该工具是用来看虚拟机状态,主要是看堆状态。
-> 启动方式: jstat -gcutil 2983 2000 10
-> 参数含义: 监视Java堆状况,线程号,隔2000毫打一次,共打10次。
-> 另外该工具还有其他很多功能,参 jstat -help。
jinfo: 该工具是用来实时的查看和调整虚拟机各项参数。
-> 启动方式: jinfo -flag MaxPermSize 2983
-> 参数含义: 查看PermSize大小,线程号
-> 另外该工具还有其他很多功能,参 jinfo -help。
jps: 该工具可以列出虚拟机进程,以及主类名和主类ID,我们一般也会用PS来看。
-> 启动方式: jps -l
-> 参数含义: 输出主类全名或Jar路径。
-> 另有 -q 输出本地线程ID,-m 输出main()函数参数,-v 输出虚拟机启动JVM参数。参 jstat -help。
jmap: 该工具是用来生成堆转储快照(heapdump)等功能。
-> 启动方式: jmap -dump:format=b,file=filename.bin 2983
-> 参数含义: 输出二进制format和什么文件名,线程号
-> 另外该工具还有其他很多功能,参 jmap -help。
jstack: 该工具是用来生成当前线程快照。可以看看死锁、死循环、外部资源等待等问题。
-> 启动方式: jstack -l 2983
-> 参数含义: 显示堆栈以及关于锁的附加信息,线程号。
-> 另有 -F 强行输出,-m 本地方法堆栈参数,参 jstack -help。
VisualVM: 目前最强大的运行监控和故障解决工具。
-> 启动方式: jvisualvm
-> 配置、环境、CPU、GC、堆、方法区、线程信息、堆转储、插件等。
-> 功能比较强大和集中。通过下述JVM启动参数进行远程监控,在图形界面中添加远程机器即可。 -Dcom.sun.management.jmxremote.port=1012
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=$HOST_ADDR
Jconsole: 也是图形界面监控管理工具。
-> 启动方式: jconsole
-> 概述、内存、线程、类、VM摘要、MBean等。
-> 大体上可以由VisualVM来解决,也有独到用处。