【问题标题】:Get information about threads (cpu, memory) running on JVM (Jboss) and other jvm info获取有关在 JVM (Jboss) 上运行的线程(cpu、内存)和其他 jvm 信息的信息
【发布时间】:2012-11-08 21:18:22
【问题描述】:

我想用 java 编写应用程序,它将获取有关在 Jboss JVM 上运行的进程和线程的信息(%cpu 使用率、内存等)。我还想在 JVM (JBoss) 中查找有关内存使用情况和其他重要信息的信息。纯java怎么写?

我知道 JConsole 之类的东西,但我需要自己编写。我发现 java.lang.managament 接口提供了一些有关系统、内存等的信息,但并未提供所有需要的信息。例如,我希望有机会读取每个线程使用的 cpu 使用情况(而不是 cpu 时间)和内存。 (类似于 bash 中的 top 命令,但我需要在 java 中创建)。

有什么帮助吗?

编辑:最终我可以使用一些库来获取此信息。

【问题讨论】:

  • "需要自己写"...?你听说过visualvm吗?
  • 正如我所见,visualvm 是一个带有图形图表的应用程序。我需要在 java 代码中操作,并且输出必须是纯文本。 Visualvm 是带有 gui 的图形工具。

标签: jboss jvm cpu usage-statistics


【解决方案1】:

JBoss AS 7 提供不同的管理界面。所有基于 Detyped Management 表示(jboss-dmr)的管理接口。

您可以使用 jboss-dmr 库和 jboss-as-controller-client 实现自定义 Java 客户端。例如,请参阅我们的github repository

要获取有关 JVM 和其他东西的信息,您需要实现以下操作:

ModelNode operation = new ModelNode();
operation.get("operation").set("read-resource");
operation.get("recursive").set(true);
operation.get("include-runtime").set(true);
ModelNode address = operation.get("address");
address.add("core-service", "platform-mbean");

或者,您也可以使用 PlatformMBeanServer:

    //Get a connection to the JBoss AS MBean server on localhost
    String host = "localhost";
    int port = 9999;  // management-native port
    String urlString = "service:jmx:remoting-jmx://" + host + ":" + port;
    JMXServiceURL serviceURL = new JMXServiceURL(urlString);
    JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL, null);
    MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();

    //Invoke on the JBoss AS MBean server
    connection.getObjectInstance(new ObjectName("java.lang:type=Threading"));
    //...
    jmxConnector.close();

【讨论】:

    【解决方案2】:

    正如 Adam 所说,有几个工具可以监控 java/jboss 资源的使用情况,另一个是 JBoss RHQ

    但如果你真的需要自己编程,也许你会发现一些访问 jboss.system 的有用信息:type=ServerInfo mbean(检查它的属性和方法:listMemoryPools、listThreadCpuUtilization、listThreadDump ... )。您可以使用 JMX 控制台或以编程方式访问它们。

    【讨论】:

      【解决方案3】:

      你可以试试 Java Melody。它是一个非常好的监控 Java 应用程序的工具。在下面的链接中查看该工具

      https://code.google.com/p/javamelody/

      -Sushitha

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-15
        • 1970-01-01
        • 1970-01-01
        • 2013-03-06
        • 2020-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多