VisualVM是一個以監控、顯示本地或者遠程服務器JVM工做狀況,進行性能調優的工具。藉助VisualVM,咱們能夠實現對JVM內存各個子池、CPU、垃圾收集器等方面進行監控,從而發現程序代碼中潛在的泄露點和配置問題。此外visualvm是jdk裏自帶的一款比較實用的可視化profiling工具。java
想法1:遠程鏈接經過ssh隧道穿透隔離網絡訪問生產環境安全
java有處理ssh協議的第三方包,ssh隧道只要對端安裝有openssh server都能搞定。服務器
因此,只須要開發一個visualvm的新遠程鏈接插件,便可穿透隔離網絡在visualvm的可視化界面下,profling生產環境主機。網絡
固然,安全性和權限須要同時考慮。ssh
想法2:使遠程和本地提供的特性一致ide
visualvm能夠用來分析 cup, thread, heap, 採樣cpu和內存,heap dump等。工具
但絕大多數功能僅限於本地。性能
雖然visualvm也提供了遠程訪問的功能,但其功能大幅縮水。官方提供的特性列表以下:spa
幸虧visualvm是開源的,爲了實現想法2的功能,咱們只須要改進一下visualvm的實現,引入一個特殊的遠程agent(替換jstatd)。該agent用於訪問本機java進程。這樣,visualvm的遠程訪問鏡像到本地,同時也具有本地的全部功能。若是想法1和想法2都能實現,我以爲visualvm的使用範圍會更廣。插件
PS:JAVA交流羣:457036818