關於jvisualvm,jconsole的實踐

jvm的監控仍是要掌握一下的,由於jvm是核心,須要可以隨時瞭解jvm的運行狀態,包括線程,內存等,本地監控就不說了,主要是遠程監控,仍是有實際意義的java

jvm提供了兩種鏈接方式:tomcat

一、jmx鏈接

這個比較簡單,在啓動的時候加入一下參數,無論是tomcat啓動仍是java -jar啓動都同樣安全

-Djava.rmi.server.hostname=xx.xx.xx.xx -Dcom.sun.management.jmxremote.port=1111
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

xx.xx.xx.xx是這臺服務器的IP,1111是端口號,注意相關防火牆,安全組這些東西
複製代碼

而後啓動以後 在你本地的jdk的安裝包的bin下面,有個jvisualvm.exe,點擊啓動 bash

右鍵遠程鏈接,添加遠程主機
輸入IP

再右鍵,添加jmx鏈接

輸入端口號,大功告成

二、jstatd鏈接

推薦用這個,爲何呢,由於它支持一個很是好用的插件,visualGC插件服務器

工具>插件>可用插件>visualGC 安裝好,若是是jmx鏈接,會以下顯示jvm

因此須要支持jstatd, 怎麼辦呢,首先,找到jdk的這個目錄 jdk1.8.0_221/jre/lib/security,有個java.policy文件,編輯加上這句話

permission java.security.AllPermission;
複製代碼

網上許可能是本身新建一個policy文件,而後加上這句話,也能夠 工具

而後在jdk的bin目錄下,後臺啓動這個如下命令:

./jstatd -J-Djava.security.policy=xx/xx/java.policy -J-Djava.rmi.server.hostname=xx.xx.xx.xx &
複製代碼
-J-Djava.security.policy=後面的是文件的絕對路徑
-J-Djava.rmi.server.logCalls=true 打開日誌,若是客戶端有鏈接過來的請求,能夠監控到,便於排錯
-J-Djava.rmi.server.hostname=192.168.36.6 指明本機hostname對應的本機地址,確保該地址能夠給客戶機訪問. 由於有的服務器hostname對應的ip不必定是外網能連上的 .最好在這裏直接明確指定
-p 1200 指定服務的端口號,默認是1099 .也是可選參數
複製代碼

而後大功告成,右鍵添加jstatd鏈接spa

一個默認一個定製,取決於你啓動有沒有指定端口,若是是默認端口,那麼會自動創建鏈接,不須要額外操做

鏈接成功後,再看,內存使用狀況盡收眼底

大功告成
相關文章
相關標籤/搜索