我想附加到WebSphere JVM並獲取有用的數據,如垃圾收集器的名稱及其收集計數,線程數,堆/非堆內存使用情況,JVM運行時間等。但是,鏈接給MBean的可與WebSphere JVM名單 -從WebSphere JVM獲取有用的數據
這些MBean似乎沒有提供我需要的任何數據。有沒有其他的方式來獲取數據?我將使用JMX來收集它。
我想附加到WebSphere JVM並獲取有用的數據,如垃圾收集器的名稱及其收集計數,線程數,堆/非堆內存使用情況,JVM運行時間等。但是,鏈接給MBean的可與WebSphere JVM名單 -從WebSphere JVM獲取有用的數據
這些MBean似乎沒有提供我需要的任何數據。有沒有其他的方式來獲取數據?我將使用JMX來收集它。
如果您是一家花費大筆資金的公司,我會建議像Wily Introscope這樣的產品,它可以與JVM一起運行代理,以收集您之後的所有指標。我用它與Websphere服務器。搜索一個開源替代品,我遇到了GlassBox,這可能爲您提供一個低成本的替代方案。
我不知道有任何默認的MBean會提供您之後的覆蓋範圍。通常是提供這種類型功能的大型Java供應商。
[更新]
最近剛剛使用VisualVM與WebSphere 7,實時監控/排除故障的目的而作出的東西,我想我會分享我的知識。 VisualVM的配備標準的Sun JDK,你會發現在這裏安裝:JAVA_HOME\bin\jvisualvm.exe
爲了使WebSphere中的JRE,讓VisualVM的連接必須添加使用WebSphere管理控制檯
轉到以下JVM參數:應用程序服務器> [服務器]> Java和進程管理>進程定義> Java虛擬機>通用JVM參數
-Djavax.management.builder.initial=
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.local.only=false
請確保您有以上選擇的端口號是不是已經在使用
netstat -ap | grep 1099
重新啓動服務器,您將能夠使用VisualVM進行連接以查看Uptime,Threads,Heap和GC配置文件。
我看到Sun也記錄瞭如何使用write your own Java JMX client來讀取這些值。
JVM統計信息由平臺MXBeans提供。如果您需要在短時間內收集這些數據,那麼您可以使用VisualVM等工具。將其配置爲連接到WebSphere實例有點棘手,但這是可能的。要做到這一點(還有其他的選擇)的一種方式在這裏描述:
http://code.google.com/p/xm4was/wiki/VisualVMHowTo
如果你想在一段較長的時間來收集數據,那麼你需要一個監控系統。在工作中,我爲Open Source RHQ enterprise management system編寫了一個插件,增加了對WebSphere的支持。我正在發佈這個插件,作爲Open Source project,但在撰寫本文時,我還沒有發佈文檔,也沒有可下載的版本。目前只有源代碼可用。我會盡量在接下來的幾周內完成。如果你對這個項目感興趣,請告訴我。
非常感謝!這是一些非常有用的信息。我實際上只想通過代碼獲取數據,所以我必須連接到PlatformMBeanServer的權利?你知道怎麼做,或者你的項目會支持嗎? – Cygnus 2012-07-11 06:07:18
您的代碼是在WebSphere還是在其他進程中運行? – 2012-07-15 14:45:45
你可以使用Brad和Andreas提供的建議。
我想給你一些我們揭示了一些應該探討
(1)的Tivoli Performance Viewer中的工具。這應該提供一些關於JVM的信息。
(2)IBM健康中心 - >http://www.ibm.com/developerworks/java/jdk/tools/healthcenter/
這兩個應該爲你提供大量的信息,你需要。
試一下
謝謝!!你最後的聲明基本上總結了一切! :) – Cygnus 2012-07-10 10:55:02