我一直致力于使用JMX获得CPU,内存,网络I / O,磁盘I / O等系统逻辑.
>对于CPU,我使用了函数OperatingSystemMXBean.getSystemLoadAverage()并获得了CPU的负载.
>对于Memory,我使用了函数OperatingSystemMXBean.getTotalPhysicalMemorySize()和OperatingSystemMXBean.getFreePhysicalMemorySize().
有没有通过JMX获得网络I / O和磁盘I / O的功能?
解决方法:
大多数VM(全部?)不公开该数据.您需要使用像sigar这样的库(源代码是github),它可以收集这些值,然后通过JMX公开sigar的返回值.
我们在http://rhq-project.org/成功使用了sigar