Java 如何通过JMX获取网络I/O和磁盘I/O

Java 如何通过JMX获取网络I/O和磁盘I/O,java,jmx,Java,Jmx,我一直在努力使用JMX获取系统数据,如CPU、内存、网络I/O、磁盘I/O 对于CPU,我使用了函数OperatingSystemMXBean.getSystemLoadAverage()并获得了CPU的负载 对于内存,我使用了操作SystemmXbean.getTotalPhysicalMemorySize()和操作SystemmXbean.getFreePhysicalMemorySize()的函数 是否有任何功能可以通过JMX获取网络I/O和磁盘I/O?大多数虚拟机(全部?)不公开该数

我一直在努力使用JMX获取系统数据,如CPU、内存、网络I/O、磁盘I/O

  • 对于CPU,我使用了函数OperatingSystemMXBean.getSystemLoadAverage()并获得了CPU的负载

  • 对于内存,我使用了操作SystemmXbean.getTotalPhysicalMemorySize()和操作SystemmXbean.getFreePhysicalMemorySize()的函数

是否有任何功能可以通过JMX获取网络I/O和磁盘I/O?

大多数虚拟机(全部?)不公开该数据。您需要使用类似(source是at)的库,它可以收集这些值,然后通过JMX公开sigar的返回值


我们在

中成功地使用了sigar,我发现sigar API将很容易获得系统指标