我已经制作了一个服务器-客户端应用程序,它根据 CPU 使用率和负载条件向用户提供文件请求。
我正在/proc/loadavg values
为此使用。但此实用程序给出至少 1 分钟的平均值。
我想要在更短的时间内(例如 1 秒或 5 秒)计算出平均值。
答案1
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
另一种方法是监控/proc/stat
定义的时间间隔内的空闲时间与其他使用时间的差异,并据此计算负载。以下是有关 /proc/stat 的更多信息。