jdk自帶的JVisualVM的視覺化監控
阿新 • • 發佈:2018-11-08
如果你前面看了我幾篇關於jvm效能優化的文章,命令列操作是不是不直觀,那麼我們來使用這個JVisualVM吧,在jdk的bin資料夾裡,這個官方文件都有中文版,外掛啥的自己看著安裝。https://visualvm.github.io/pluginscenters.html
他主要有如下的功能:
1.監控本地Tomcat
2. 監控遠端Tomcat
3.監控普通的JAVA程序
功能 抽樣器-選擇cpu 可以檢視熱點方法,方法執行的時間,從而排除方法慢的原因(尤其是慢sql的情況下)
抽樣器-選擇記憶體 動態引數物件佔用的記憶體
安裝外掛 先設定外掛中心的地址,必須和角度看版本相同 外掛 Visual GC 圖形化的展示記憶體的變化情況
JMX 連線遠端機器
1.啟動普通的jar程式
java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar foo.jar
2.遠端連線啟動authenticate、ssl引數,參考上面的命令
tomcat 配置
1.不需要鑑權
JAVA_OPTS=-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
2. 鑑權
set JMX_REMOTE_CONFIG=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access set CATALINA_OPTS=%CATALINA_OPTS% %JMX_REMOTE_CONFIG%
複製並修改授權檔案
JAVA_HOME/jre/lib/management下有jmxremote.access和jmxremote.password.template的模板檔案,將兩個檔案複製到CATALINA_BASE/conf目錄下
*重新命名jmxremote.password.template檔案為jmxremote.password
*修改CATALINA_BASE/conf/jmxremote.access 新增內容:
monitorRole readonly
controlRole readwrite
*修改CATALINA_BASE/conf/jmxremote.password 新增內容:
monitorRole liuke #可自定義
controlRole liuke #可自定義
tomcat 為 8.0.5 tomcat catalina.sh 加入以下配置,需要配置的是下方的port(注意不要與其他的埠衝突),hostname 為虛擬機器的IP
JAVA_OPTS="$JAVA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9004
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-Djava.net.preferIPv4Stack=true
-Djava.rmi.server.hostname=192.168.56.1"
遠端連結記得把9004埠號開放哦。。。