全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 2740|回复: 15
打印 上一主题 下一主题

根据/proc/stat文件计算CPU使用率

[复制链接]
跳转到指定楼层
1#
发表于 2010-5-21 12:22:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
2#
发表于 2010-5-21 12:26:50 | 只看该作者
给个完整的演示嘛
3#
发表于 2010-5-21 12:30:45 | 只看该作者
不错,有技术含量
4#
 楼主| 发表于 2010-5-21 12:31:19 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
5#
 楼主| 发表于 2010-5-21 12:32:52 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
6#
发表于 2010-5-21 12:34:03 | 只看该作者
不错收下了 明天上班了用电脑再仔细看看学习下 呵呵
7#
发表于 2010-5-21 13:00:47 | 只看该作者
每次总觉得 administrator 好神秘

是dia的高级技术+boss 不知道猜对没
8#
发表于 2010-5-21 13:33:15 | 只看该作者
顶下,支持了
9#
发表于 2010-5-22 13:03:33 | 只看该作者
用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. ?>
复制代码
10#
 楼主| 发表于 2010-5-22 13:06:19 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-18 21:28 , Processed in 0.067152 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表