2

我目前正在为一个显示当前 CPU 使用率的网站设计一个图形系统,你可以在这里看到我正在进行的工作 - http://nereus.rikkuness.net/admin/cpu2.php

它目前完全按照我的意愿工作,但问题是我目前轮询 CPU 使用率的方式是

sar 1 | sed -n '5p' | awk '{ print $8; }'

这工作正常,但需要大约一秒钟左右的时间来回复 CPU 使用率,这使得图表不会像我期望的那样在浏览器中更新。

任何可以为我提供相同信息但速度更快的命令的帮助将不胜感激。

非常感谢,

史蒂夫

4

3 回答 3

1

您可以简单地使用sar 0. sar 1这将立即返回结果,而不是像使用.\那样等待 1 秒的时间间隔。

请注意,这只会返回一个时间点值,因此您可能需要使用 javascript 来跟踪以前的值(即向数组添加新值并弹出旧值)。

于 2012-12-18T19:49:45.107 回答
1

使用 PHP 的内部sys_getloadavg函数怎么样?http://php.net/manual/en/function.sys-getloadavg.php

此外,为了获得当前负载,以下几行可能就足够了:

<?php
$output = shell_exec('cat /proc/loadavg');
$loadavg = substr($output,0,strpos($output," "));
?>

于 2012-12-18T19:50:49.100 回答
0

如果您可以在 html5 上进行中继,您可以使用网络套接字来完成您的任务。

WebSocket 是一种通过单个 TCP 连接提供全双工通信通道的 Web 技术。W3C 正在对 WebSocket API 进行标准化,而 IETF 已将 WebSocket 协议标准化为 RFC 6455。

由于您使用的是 linux,我想这不是问题,因为 Firefox 和 chrome 都支持它们(http://caniuse.com/#feat=websockets)。

于 2012-12-18T19:48:25.733 回答