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

问题描述 投票:4回答:2

我一直致力于使用JMX获取CPU,内存,网络I / O,磁盘I / O等系统指标。

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

有没有通过JMX获得网络I / O和磁盘I / O的功能?

java jmx
2个回答
4
投票

大多数VM(全部?)不公开该数据。您需要使用像sigar这样的库(源代码在github),它可以收集这些值,然后通过JMX公开sigar的返回值。

我们正在使用sigar在http://rhq-project.org/取得成功


0
投票

我发现SIGAR API可以轻松获得System Metrics。

© www.soinside.com 2019 - 2024. All rights reserved.