日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

visualvm远程jvm_VisualVM:通过SSH监视远程JVM(是否为JMX)

發(fā)布時間:2023/12/3 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 visualvm远程jvm_VisualVM:通过SSH监视远程JVM(是否为JMX) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

visualvm遠程jvm

VisualVM是用于監(jiān)視JVM(5.0+)的有關(guān)內(nèi)存使用,線程,GC,MBeans等的出色工具。讓我們看看如何通過SSH使用它來監(jiān)視(甚至使用JMX進行配置)使用JMX或不使用JMX的遠程JVM。它。 這篇文章基于在Ubuntu 10和VisualVM 1.3.3上運行的Sun JVM 1.6。

1.交流:JStatD與JMX

VisualVM和JVM之間有兩種通信方式:通過Java Management Extensions (JMX)協(xié)議或通過jstatd 。

stat

jstatd是與JDK一起分發(fā)的守護程序。 在目標計算機上從命令行啟動它(可能需要以運行目標JVM的用戶身份或以root用戶身份運行它),VisualVM會與它聯(lián)系以獲取有關(guān)遠程JVM的信息。

  • 優(yōu)點:可以連接到正在運行的JVM,無需使用特殊參數(shù)啟動它
  • 缺點:監(jiān)控功能有限得多(例如,沒有CPU使用情況監(jiān)控,無法運行Sampler和/或進行線程轉(zhuǎn)儲)。

例如:

bash> cat jstatd.all.policy grant codebase 'file:${java.home}/../lib/tools.jar' { permission java.security.AllPermission; } bash> sudo /path/to/JDK/bin/jstatd -J-Djava.security.policy=jstatd.all.policy # You can specify port with -p number and get more info with -J-Djava.rmi.server.logCalls=true

注意:如果僅復(fù)制但未安裝JDK,則將“ $ {java.home} /../ lib / tools.jar”替換為絕對的“ /path/to/jdk/lib/tools.jar”。

如果失敗了

Could not create remote object access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write) java.security.AccessControlException: access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)

那么jstatd可能沒有使用正確的java.security.policy文件啟動(嘗試提供其完全限定的路徑)。

有關(guān)來自O(shè)racle的VisualVM和jstatd的更多信息 。

JMX

  • 優(yōu)點:使用JMX將為您提供VisualVM的全部功能。
  • 缺點:需要使用某些系統(tǒng)屬性啟動JVM。

啟動目標JVM時,通常將需要使用以下屬性(盡管您也可以啟用SSL和/或要求用戶名和密碼):

yourJavaCommand... -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1098

請參閱遠程JMX連接 。

2.安全性:SSH

通過ssh連接到遠程JMX或jstatd的最簡單方法是使用SOCKS代理 ,它可以設(shè)置標準ssh客戶端。

2.1使用SOCKS設(shè)置SSH隧道

ssh -v -D 9696 my_server.example.com

2.2配置VisualVM以使用代理

工具->選項->網(wǎng)絡(luò)–手動代理設(shè)置–檢查它并在本地主機和端口9696上配置SOCKS代理

2.3將VisualVM連接到目標

文件->添加遠程主機…–輸入遠程計算機的IP或主機名JStatD連接

您應(yīng)該在ssh窗口中都看到日志(由于其“ -v”, 例如: “ debug1:端口9696的連接轉(zhuǎn)發(fā)到請求的socks端口0。 ”和“ debug1:通道3:免費:direct-tcpip:監(jiān)聽10.696.77端口1099的端口9696,從127.0.0.1端口61262,nchannels 6 “ 連接,并在啟動jstatd的控制臺中連接(很多,例如“ FINER:RMI TCP Connection(23)-10.2.47.71 :… “)

添加遠程主機后,請等待幾分鐘,然后您將看到JVM在其中運行。

可用的統(tǒng)計信息:JVM參數(shù),監(jiān)視器:堆,類,線程監(jiān)視(但不包括CPU)。 采樣器和MBean需要JMX。

JMX

右鍵單擊已添加的遠程主機,然后選擇“添加JMX連接...”,鍵入您選擇的JMX端口。

您應(yīng)該看到與jstatd類似的日志。

可用的統(tǒng)計信息:CPU使用率,系統(tǒng)屬性,詳細的線程報告以及對堆棧跟蹤的訪問,CPU采樣(不支持內(nèi)存采樣)。

注意:采樣器與分析器

VisualVM的采樣器不包括花費在Object.wait和Thread.sleep中的時間(例如,等待I / O)。 如果您希望獲得更多控制權(quán)或希望包括Object.wait和Thread.sleep時間,請使用NetBeans Profiler來對遠程應(yīng)用程序進行概要分析或采樣。 它要求其Remote Pack(Java代理,即JAR文件)位于目標JVM中(NetBeans的附加向?qū)Э梢栽诓襟E4(手動集成)中為您生成遠程包,并向您展示傳遞給目標的選項使用JVM)。

您可以通過以下方式通過SSH運行探查器:轉(zhuǎn)發(fā)其默認端口 (5140),并將其附加到本地主機上的轉(zhuǎn)發(fā)端口。(NetBeans版本7.1.1。)

別忘了分享!

參考: VisualVM: The Holy Java博客上來自JCG合作伙伴 Jakub Holy的通過SSH監(jiān)視遠程JVM(無論是否為JMX) 。


翻譯自: https://www.javacodegeeks.com/2012/09/visualvm-monitoring-remote-jvm-over-ssh.html

visualvm遠程jvm

總結(jié)

以上是生活随笔為你收集整理的visualvm远程jvm_VisualVM:通过SSH监视远程JVM(是否为JMX)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。