和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連接配接:
填入ip和port
然後即可打開監視界面,預設的是目前JVM的概要包括參數等:
我們主要看線程狀态,單擊線程頁籤:
如果發現線程時間軸上有紅色塊則表明線程阻塞了:
單擊第四幅圖右上角的線程dump,可以顯示目前所有線程的狀态,如果有blocked我們可以看到其詳細原因,本例中是: