jvisualvm鏈接遠程應用,線程監控,性能分析

剛剛接觸分佈式架構,才知道功能開發是多麼得小兒科,大部分的問題都是出在性能瓶頸上,這時,咱們須要及時的跟蹤接口的服務調用鏈路,線程的使用狀況,JVM堆棧的狀況,進而分析,致使系統變慢的緣由。java

今天給你們介紹一款能夠鏈接遠程服務器,對線程進行監控的JVM工具jvisualvm。首先,須要在咱們遠程的服務器配置好java環境等(廢話,遠程跑着程序怎麼能沒配置好java環境),在有了java環境以後,作什麼事情內心都踏實了,接下來,就說一下我是怎麼成功的運用jvisualvm工具連接上咱們遠程的服務器的;linux

1.在服務器是安裝jstatd 組件;    直接執行 sudo apt-get install openjdk-6-jdk   便可;安全

2.在服務器上配置 jstatd 的 security policy 文件,    jstatd是一個監控 JVM 從建立到銷燬過程當中資源佔用狀況並提供遠程監控接口的 RMI ( Remote Method Invocation ,遠程方法調用)服務器程序,它是一個 Daemon 程序,要保證遠程監控軟件鏈接到本地的話須要 jstatd 始終保持運行。服務器

jstatd運行須要經過 -J-Djava.security.policy=*** 指定安全策略,所以咱們須要在服務器上創建一個指定安全策略的文件jstatd.all.policy ,能夠在linux下的任何目錄下建立該文件,不要糾結~  我是在根目錄建立的。 文件內容以下:架構

grant codebase "file:${java.home}/../lib/tools.jar" {分佈式

permission java.security.AllPermission;工具

};性能

${java.home}根據本身linux下的實際jdk路徑靈活替換,不要無腦粘貼哦線程

3.修改服務器 hosts 文件中的 IP 地址code

要使Java VisualVM 成功鏈接到遠程服務器上,服務器端應該在 /etc/hosts 文件中把本機地址設爲本機的 IP 地址。使用 hostname -i 命令查看,若是顯示的是 127.0.0.1 或者與本機實際 IP 不一致的話,須要把 /etc/hosts 文件中相應的地址改成本機實際 IP 。

4.啓動jstatd守護線程

sudo setsid /lhdata/tool/jdk1.8.0_172/bin/jstatd -J-Djava.security.policy=jstatd.all.policy -p 3099 -J-Djava.rmi.server.logCalls=true &

-p 3099表示將端口改成3099,默承認能是1099,第一次啓動jstatd就沒加-p 3099,致使啓動失敗,應該是線程被佔據,因此遇到一樣問題的童鞋能夠用這種方法解決;

5.經過Java VisualVM 鏈接到服務器監控 Java 程序

打開cmd命令彈窗,輸入**jvisualvm命令,**回車~VisualVM工具就會被打開,如圖,顏值還行,目測用着應該能挺方便

打開工具後,連接剛纔配置好的遠程服務器,接下來的操做就是看圖說話了,若是搞不懂,能夠爲本身的將來作個打算了(我就沒搞出來,😂)

好了,我要爲本身的將來作一個打算了~

相關文章
相關標籤/搜索