全球主机交流论坛

标题: 根据/proc/stat文件计算CPU使用率 [打印本页]

作者: Administrator    时间: 2010-5-21 12:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: shinko    时间: 2010-5-21 12:26
给个完整的演示嘛
作者: outshine    时间: 2010-5-21 12:30
不错,有技术含量
作者: Administrator    时间: 2010-5-21 12:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: Administrator    时间: 2010-5-21 12:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: zyypp    时间: 2010-5-21 12:34
不错收下了 明天上班了用电脑再仔细看看学习下 呵呵
作者: sunday    时间: 2010-5-21 13:00
每次总觉得 administrator 好神秘

是dia的高级技术+boss 不知道猜对没
作者: shy9000    时间: 2010-5-21 13:33
顶下,支持了
作者: zyypp    时间: 2010-5-22 13:03
用LZ给的代码直接测试 却正常得很 第一次0.12% 后面全是 0.00%
PS: LZ上面写的有笔误吧 nice_last 出现多次 可是其中有2除 却写成了 ice_last处 呵呵

我将代码修改后 以json的方式读取 在无占用的情况下测试 显示一直是0.12%
改为用下面的模式也是一直显示 0.12%
  1. <?
  2. $sysInfo = sys_linux();
  3. $cpu = $sysInfo['cpu'];
  4. while(true){
  5. echo "$cpu";
  6. sleep(1);
  7. }

  8. function sys_linux()
  9. {
  10.         if (false === ($statarr = @file("/proc/stat"))) return false;
  11.         preg_match_all("/\S+/", $statarr[0], $preg_arr);
  12.         $user_now    = $preg_arr[0][1];
  13.         $nice_now    = $preg_arr[0][2];
  14.         $system_now  = $preg_arr[0][3];
  15.         $idle_now    = $preg_arr[0][4];
  16.         $iowait_now  = $preg_arr[0][5];
  17.         $irq_now     = $preg_arr[0][6];
  18.         $softirq_now = $preg_arr[0][7];
  19.         $total_now   = $user_now + $nice_now + $system_now + $idle_now + $iowait_now + $irq_now + $softirq_now;
  20.         $cpuusage = (($user_last + $nice_last + $system_last) - ($user_now + $nice_now + $system_now)) / ($total_last - $total_now) * 100;
  21.         $cpuusage = number_format($cpuusage, 2) . '%';
  22.         $user_last   = $user_now;
  23.         $nice_last    = $nice_now;
  24.         $system_last = $system_now;
  25.         $idle_last   = $idle_now;
  26.         $iowait_last = $iowait_now;
  27.         $irq_last    = $irq_now;
  28.         $soft_last   = $softirq_now;
  29.         $total_last  = $total_now;
  30.         $res['cpu'] = $cpuusage;
  31.         return $res;
  32. }
  33. ?>
复制代码

作者: Administrator    时间: 2010-5-22 13:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: zyypp    时间: 2010-5-22 13:11
标题: 回复 10# 的帖子
能帮忙看看 我的那里出错了?! 为什么 用你的原样不改就正常 我修改后 就貌似不太正常了呢?!

还有 你这个 貌似算得 是 cpu的us 已使用而不是 id空闲 吧

效果页是 http://test.htooy.org/sys/sys.php
附件是我修改成 json方式调用的代码

[ 本帖最后由 zyypp 于 2010-5-22 13:15 编辑 ]
作者: Administrator    时间: 2010-5-22 14:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: zyypp    时间: 2010-5-22 14:15
标题: 回复 12# 的帖子
额 了解了 那只有在想其他方法了 呵呵
作者: Administrator    时间: 2010-5-22 14:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: Administrator    时间: 2010-5-22 14:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: zyypp    时间: 2010-5-22 14:35
标题: 回复 15# 的帖子
额 我抽空在捣鼓一下吧 哎
呵呵




欢迎光临 全球主机交流论坛 (https://loc.442266.xyz/) Powered by Discuz! X3.4