我想附加到WebSphere JVM并获取有用的数据,例如垃圾收集器的名称及其收集计数,线程数,堆/非堆内存使用情况,JVM正常运行时间等。但是,此链接提供了MBean列表可与WebSphere JVM一起使用 -
这些MBean似乎没有提供我需要的任何数据。有没有其他方法来获取数据?我将使用JMX收集它。
答案 0 :(得分:3)
如果你是一个有钱花钱的公司,我会推荐像Wily Introscope这样的产品,它和你的JVM一起运行一个代理来收集你所追求的所有指标。我已将它与Websphere服务器一起使用。在寻找开源替代方案时,我遇到了GlassBox,这可能为您提供低成本替代方案。
我不知道任何默认MBean将提供你所追求的覆盖范围。通常是提供此类功能的大型Java供应商。
<强> [更新] 强>
最近使用VisualVM和Websphere 7做了一些事情,出于实时监控/故障排除的目的,我想我会分享我的知识。 VisualVM附带标准的Sun JDK,你会发现它安装在这里:JAVA_HOME\bin\jvisualvm.exe
要在Websphere中启用JRE以允许VisualVM连接,您必须使用Websphere管理控制台添加以下JVM参数
转至:应用程序服务器&gt; [server_name]&gt; Java和流程管理&gt; <处理定义> Java虚拟机&gt;通用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连接以查看正常运行时间,线程,堆和GC配置文件。
我看到Sun还记录了如何write your own Java JMX client阅读这些值。
答案 1 :(得分:2)
你可以选择Brad和Andreas提供的建议。
我想就一些应该探索的工具提供一些见解
(1)Tivoli Performance Viewer。这应该提供有关JVM的一些信息。
(2)IBM Health Center - &gt; http://www.ibm.com/developerworks/java/jdk/tools/healthcenter/
这些都应该为您提供所需的大量信息。
尝试出来
答案 2 :(得分:1)
JVM统计信息由MXBeans平台提供。如果您需要在短时间内收集这些数据,那么您可以使用VisualVM等工具。配置它以连接到WebSphere实例有点棘手,但它是可能的。这里描述了一种方法(还有其他选项):
http://code.google.com/p/xm4was/wiki/VisualVMHowTo
如果您想在更长的时间内收集数据,那么您需要一个监控系统。在工作中,我为开源RHQ enterprise management system编写了一个插件,增加了对WebSphere的支持。我正在以Open Source project的形式发布此插件,但在撰写本文时,我还没有发布文档,也没有可下载的版本。现在只有源代码可用。我将在接下来的几周内尝试完成。如果您对此项目感兴趣,请告诉我。