如何获得即时 CPU 负载值?

Har*_*hit 6 server cpu-load

我制作了一个服务器-客户端应用程序,它根据 CPU 使用率和负载条件为用户提供文件请求。

我正在使用/proc/loadavg values这个。但此实用程序给出了至少 1 分钟内的平均值。

我希望在更短的时间内(如 1 秒或 5 秒)平均取值。

Ian*_* B. 2

mpstat解析包的输出怎么样sysstat?您可以获取每个处理器的统计信息并设置间隔(以下为2秒间隔)。

示例输出:

$ mpstat -P ALL 2
Linux 3.5.0-19-generic (ubuntu)     11/30/2012  _x86_64_    (4 CPU)

08:34:28 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
08:34:30 AM  all    1.01    0.00    1.26    0.00    0.00    0.13    0.00    0.00   97.61
08:34:30 AM    0    2.50    0.00    1.50    0.00    0.00    0.50    0.00    0.00   95.50
08:34:30 AM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
08:34:30 AM    2    1.01    0.00    3.02    0.00    0.00    0.00    0.00    0.00   95.98
08:34:30 AM    3    0.50    0.00    0.50    0.00    0.00    0.00    0.00    0.00   99.00
Run Code Online (Sandbox Code Playgroud)

或者,您可以自己实现该算法。看看这里这里

另一种方法是在/proc/stat定义的时间间隔内监视空闲时间与其他使用时间的差异,并据此计算负载。这是有关 /proc/stat 的更多信息