0
点赞
收藏
分享

微信扫一扫

JVM监控与故障处理工具


[color=red][b]VisualVM[/b][/color] 入门指南 [url]https://visualvm.java.net/zh_CN/gettingstarted.html[/url]

[color=red][size=medium]1. JDK命令行工具[/size][/color]

1.1 jps [url]http://docs.oracle.com/javase/7/docs/technotes/tools/share/jps.html[/url]

与Unix下的ps命令相似,可以列出正在运行的虚拟机进程并显示主类(main()函数所在类)类名以及LVMID(Local Virtual Machine Identifier)。LVMID与PID是一致的。命令格式:

jps [options] [hostid]

选项 用途
-q 只输出LVMID
-m 输出JVM启动时传递给主类main()函数的参数
-l 输出主类全名
-v 输出JVM启动时的JVM参数

1.2 jstat,虚拟机统计信息监视工具[url]http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html[/url]

在理解Java性能调优中已经有描述。

1.3 jinfo, Java配置信息工具[url]http://docs.oracle.com/javase/7/docs/technotes/tools/share/jinfo.html[/url]

用于实时查看和调整虚拟机各项参数。

1.4 jmap, Java内存映像工具[url]http://docs.oracle.com/javase/7/docs/technotes/tools/share/jmap.html[/url]

在理解Java性能调优中已经有描述。

1.5 jhat, 堆转储快照分析工具[url]http://docs.oracle.com/javase/7/docs/technotes/tools/share/jhat.html[/url]

用于分析堆转储快照,内置一个微型HTTP服务器,分析结果后可在浏览器中查看。但这个工具并不常用。

1.6 jstack, Java堆栈跟踪工具[url]http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstack.html[/url]

用于生成虚拟机当前时刻的线程快照(threaddump),即当前每一条线程正在执行的方法堆栈集合。主要目的是定位线程出现长时间停顿的原因,如死锁、死循环、请求外部资源等。

当线程出现停顿时,通过jstack查看各线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么。

选项 用途
-F 当正常输出的请求不被响应时,强制输出线程堆栈
-l 除堆栈外,显示关于锁的附加信息
-m 如果调用本地方法的话,显示C/C++堆栈


[size=medium][color=red]2. JDK的可视化工具[/color][/size]

2.1 JConsole

基于JMX的可视化监视、管理工具。直接通过集令后运行jconsole。

2.2 VisualVM [url]http://visualvm.java.net/[/url],多合一故障处理工具

VisualVM Is Designed For You:

Application Developer: Monitor, profile, take thread dumps, browse heap dumps
System Administrator: Monitor and control Java applications across the entire network
Java Application User: Create bug reports containing all the necessary information

举报

相关推荐

0 条评论