繁体   English   中英

在Java(Linux)中获取一段时间内的平均系统CPU使用率

[英]Getting average system CPU usage over a time interval in Java (linux)

我基本上希望com.sun.management.OperatingSystemMXBean.getSystemCpuLoad()的结果在一个时间间隔(例如60秒com.sun.management.OperatingSystemMXBean.getSystemCpuLoad()平均。

java.lang.management.OperatingSystemMXBean具有getSystemLoadAverage() ,但是据我所读,它获得的是“ CPU负载”而不是“ CPU使用率”,后者的计算方式有所不同。

是否有某种预先存在的API可以得到我想要的东西,还是我必须自己实现它?

如果您希望平均值以任何方式有意义,则它必须是大于1的某些数据集的平均值。

以固定的时间间隔(例如每秒一次)向系统查询当前的CPU负载,并将每个查询的结果随时间保存在某种类型的集合中,例如数组。

之后,您可以获得阵列中最新60个条目的平均值,这就是最近60秒(1秒精度)的平均CPU负载。

如果您不知道如何对某物求平均,则应为average = sum_of_elements_values / number_of_elements

如果要某种形式的“绝对”精度而不是1秒的精度,则所有更改就是您必须查询每个CPU周期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM