【问题标题】:Monitor JVM CPU/RAM usage by java通过 java 监控 JVM CPU/RAM 使用情况
【发布时间】:2021-01-19 16:15:57
【问题描述】:

我使用 JMX 获取 JVM 利用率(CPU、内存、线程...)并在 Jconsole 上显示结果, 但我需要 API 与 Java 代码集成 并利用tomcat然后将数据记录到文件中 Windows 中是否有 API 技术或服务使用命令行来做到这一点?

【问题讨论】:

标签: java tomcat monitoring jmx


【解决方案1】:

JMX 是一种旨在供 Java 程序使用的技术,所以是的,这是可能的。您需要创建一个 JMX 服务 URL 以指向服务器(可能在 localhost 上),然后将其与 JMX 连接器连接:

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/server");
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);

一旦你有了它,你就可以通过名字来获取 MBean,

MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();

您可以从那里获取 MBean,包括 jconsole 中报告的内容。例如,RuntimeMXBean:

RuntimeMXBean proxy = ManagementFactory.newPlatformMXBeanProxy(
  mbsc,
  ManagementFactory.RUNTIME_MXBEAN_NAME,
  RuntimeMXBean.class);
long uptime = proxy.getUptime();

如果你想检查内存,你需要找出可用的内存池,然后遍历每个。您还可以设置一个侦听器来查找更改。 更多教程见:https://docs.oracle.com/javase/8/docs/technotes/guides/jmx/tutorial/tutorialTOC.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2010-10-19
    • 2019-02-12
    • 1970-01-01
    • 2013-05-17
    • 2016-07-18
    • 1970-01-01
    相关资源
    最近更新 更多