和jconsole侧重于内存分析和检测不同,jvisualvm在线程分析方面更强大一些,下面简单介绍下使用:

1. 在要监控的java应用配置文件中,本例是apache-jmeter/bin/jmeter文件,记住不可换行!

HEAP="-Xms512m -Xmx512m -Dcom.sun.management.jmxremote -Djava.awt.headless=true -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=19.168.1.1 "  

2. 打开jvisualvm并新增一个jmx连接:

jvisualvm 使用-LMLPHP

填入ip和port

jvisualvm 使用-LMLPHP

然后即可打开监视界面,默认的是当前JVM的概要包括参数等:

jvisualvm 使用-LMLPHP

我们主要看线程状态,单击线程选项卡:

jvisualvm 使用-LMLPHP

如果发现线程时间轴上有红色块则表明线程阻塞了:

jvisualvm 使用-LMLPHP

单击第四幅图右上角的线程dump,可以显示当前所有线程的状态,如果有blocked我们可以看到其详细原因,本例中是:

jvisualvm 使用-LMLPHP

04-30 11:31