One minute
Java虚拟机性能监控工具草览
2017年04月25日
方法、套路、工具,都能提高生产力。
这一段时间我们做了一些压测工作,压测过程比较复杂,就不一一记录,把过程中用到的一些工具记录一下。
(同步发在我的OSCHINA博客)
-
一、 Java虚拟机有哪些性能工具
我们按操作方式分为两类,有图形界面的和没图形界面的。
-
1.没图形界面的
- jstat(JVM Statistics Monitoring Tool): 虚拟机状态信息统计监视工具,(本次主要用他来输出gc信息了。)
- jinfo(Configuration Info for Java): 查看调整虚拟机参数工具。
- jps(JVM Process Status Tool): 虚拟机进程状况工具。
- jmap(Memory Map for Java): 生成堆转储快照工具。
- jstack(Stack Trace for Java): 堆栈跟踪工具。
-
2.有图形界面的
- VisualVM(All-in-one Java Troubleshooting Tool): 多合一监控和故障处理工具,最常用的Java性能工具(也是本次压测用的最多的工具)。
- Jconsole(Java Monitoring and Management Console): Java监控管理工具。
-
二、 都是咋启动的,能干啥
-
- 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来解决,也有独到用处。
159 Words
2017-04-25 08:00 +0800
Read other posts