標籤:visualvm 遠程監控 java 遠端連線
VisualVM是一個以監控、顯示本地或者遠程伺服器JVM工作情況,進行效能調優的工具。藉助VisualVM,我們可以實現對JVM記憶體各個子池、CPU、垃圾收集器等方面進行監控,從而發現程式碼中潛在的泄露點和配置問題。此外visualvm是jdk裡內建的一款比較實用的可視化profiling工具。
想法1:遠端連線通過ssh隧道穿透隔離網路訪問生產環境
java有處理ssh協議的第三方包,ssh隧道只要對端安裝有openssh server都能搞定。
所以,只需要開發一個visualvm的新遠端連線外掛程式,即可穿透隔離網路在visualvm的可視化介面下,profling生產環境主機。
當然,安全性和許可權需要同時考慮。
想法2:使遠程和本地提供的特性一致
visualvm可以用來分析 cup, thread, heap, 採樣cpu和記憶體,heap dump等。
但絕大多數功能僅限於本地。
雖然visualvm也提供了遠端存取的功能,但其功能大幅縮水。官方提供的特性列表如下:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6D/CA/wKioL1VsE9XxaEihAAGCcVSLCGg843.jpg" title="65.JPG" alt="wKioL1VsE9XxaEihAAGCcVSLCGg843.jpg" />
幸好visualvm是開源的,為了實現想法2的功能,我們只需要改進一下visualvm的實現,引入一個特殊的遠程agent(替換jstatd)。該agent用於訪問本機java進程。這樣,visualvm的遠端存取鏡像到本地,同時也具備本地的所有功能。如果想法1和想法2都能實現,我覺得visualvm的使用範圍會更廣。
PS:JAVA交流群:457036818
本文出自 “JAVA學習視頻教程” 部落格,請務必保留此出處http://10239772.blog.51cto.com/10229772/1657158
【JAVA教程】關於增強visualvm的一些想法