当前位置: 首页 > 知识库问答 >
问题:

从 Web 领域 JVM 中获取有用的数据

巫马化
2023-03-14

我想附加到 WebSphere JVM 并获取有用的数据,如垃圾回收器的名称及其收集计数、线程计数、堆/非堆内存使用情况、JVM 正常运行时间等。但是,此链接提供了 WebSphere JVM 中可用的 MBean 列表 -

http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.javadoc.wsfep.doc/web/mbeanDocs/index.html

这些MBean似乎没有提供我需要的任何数据。还有其他方法可以获取数据吗?我将使用JMX来收集它。

共有3个答案

曾云
2023-03-14

JVM 统计信息由平台 MX 令牌提供。如果需要在短时间内收集此数据,则可以使用 VisualVM 等工具。将其配置为连接到 WebSphere 实例有点棘手,但这是可能的。此处描述了一种执行此操作的方法(还有其他选项):

http://code.google.com/p/xm4was/wiki/VisualVMHowTo

如果你想在更长的时间内收集数据,那么你需要一个监控系统。在工作中,我为开源的RHQ企业管理系统编写了一个插件,增加了对WebSphere的支持。我正在将这个插件作为开源项目发布,但是在撰写本文的时候,我还没有发布文档,也没有可供下载的版本。目前只有源代码可用。我会努力在接下来的几周内完成。如果你对这个项目感兴趣,请让我知道。

闻人冷勋
2023-03-14

你可以采纳布拉德和安德烈亚斯提供的建议。

我想给大家一些应该探索的工具的见解

(1)Tivoli Performance Viewer。这应该提供有关JVM的一些信息。

(2) IBM 健康中心 -

这两者都应该为你提供你需要的很多信息。

试试他们

邓光耀
2023-03-14

如果你是一家有钱花的公司,我建议你使用Wily Introscope这样的产品,它与你的JVM一起运行一个代理来收集你想要的所有指标。我在Websphere服务器上使用过它。在寻找开源替代品时,我遇到了GlassBox,它可能为您提供一种低成本的替代品。

我不知道有什么默认的MBean可以提供您想要的覆盖范围。通常是大型Java供应商提供此类功能。

[更新]

最近在Websphere 7中使用VisualVM做了一些事情,为了实时监控/故障排除,我想我应该分享我的知识。VisualVM附带标准的Sun JDK,您可以在此处找到它的安装位置:JAVA_HOME\bin\jvisualvm.exe

要启用Webphere中的JRE以允许VisualVM连接,您必须使用Webphere管理控制台添加以下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还记录了如何编写自己的JavaJMX客户端来读取这些值。

 类似资料:
  • 我在JSON中有以下数据: 并且我想使用jQuery获得它,这就是我正在做的: 我还尝试使用回调来实现它,这样做: 即使使用回调,我也无法恢复数据。返回函数。而返回未定义的me,并表示回调不是函数。

  • 我目前正在开发一个Java webapp,使用maven进行构建(我还没有mvn方面的经验)。对于我的场景,应用程序需要提供的作用域。现在,我将如何‘提取’pom文件中定义的JAR,以便将它们复制到Tomcat lib文件夹中?

  • 问题内容: 我试图使用Angular从远程WS以Json格式获取数据,但遇到了一些麻烦。数据正确地来自Web服务,但是我不能在控制器内部使用它。这是为什么?角度代码: HTML: 问题答案: 您应该将$ http.get放入控制器中。 而且,Web服务返回的对象不是数组。因此,您的ng-repeat应该是这样的: 这是一个工作示例:

  • 我们正在使用Web Sphere 8.5和JProfiler 8.1。我想挂钩在Web Sphere 8.5中运行的JVM。JVM安装在安装Web Sphere的节点以外的节点(机器)中。 我的疑问是,在使用Websphere integration wizard(会话)时,我必须提供哪个机器名(从下面开始)- 安装JVM的主机/机器(Server.xml所在的位置) 安装Web Sphere的主

  • 我有一个Web应用程序,它对不同端口上的Web服务执行ajax请求(即我的应用程序和服务器位于不同的域中)。 我无法访问服务器 API,因此我无法使用 JSONP。 我正在使用Smiley的HTTP代理Servlet进行解析,因此我的web.xml文件包含以下部分: 不幸的是,我必须在不同的机器(开发、测试、生产)上部署web应用程序,这些机器响应不同的IP地址<是否有一种方法可以在web上动态更