jvm的監控仍是要掌握一下的,由於jvm是核心,須要可以隨時瞭解jvm的運行狀態,包括線程,內存等,本地監控就不說了,主要是遠程監控,仍是有實際意義的java
jvm提供了兩種鏈接方式:tomcat
這個比較簡單,在啓動的時候加入一下參數,無論是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鏈接 輸入端口號,大功告成推薦用這個,爲何呢,由於它支持一個很是好用的插件,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
一個默認一個定製,取決於你啓動有沒有指定端口,若是是默認端口,那麼會自動創建鏈接,不須要額外操做 鏈接成功後,再看,內存使用狀況盡收眼底 大功告成