免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3400 | 回复: 3
打印 上一主题 下一主题

用这种方式 计算CPU使用率 和 top 上的CPU使用率 相差较大,不准确!高手解释下! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-22 15:50 |只看该作者 |倒序浏览
#!/usr/bin/perl -w
use strict;
sub GetCPUState{
        open FILE, "/proc/stat" or die "cannot open /proc/stat file ";
        my @info = split (/ +/ ,<FILE>);
        my @result ;
        $result[0] = $info[4] ; # IDLE time
        for(1..$#info){
                $result[1] += $info[$_];
        }
        close FILE;
        return @result;
}
my (@newCPU,@oldCPU);
@newCPU = &GetCPUState;
while(1){
        sleep(5);
        @oldCPU = @newCPU;
        @newCPU = GetCPUState;
        my $cpu_used =  100 * ( 1 - (($newCPU[0] - $oldCPU[0])/($newCPU[1] - $oldCPU[1])) );
        printf "CPU used: %3.2f%% \n", $cpu_used;
        @oldCPU = @newCPU;
}

论坛徽章:
0
2 [报告]
发表于 2011-07-22 17:38 |只看该作者
参考下dstat程序,它统计cpu、内存、磁盘IO、网络流量,很好很强大,不过是用python写的。

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
3 [报告]
发表于 2011-07-22 17:46 |只看该作者
用 Perl 重写,当练手

论坛徽章:
0
4 [报告]
发表于 2011-07-23 10:09 |只看该作者
回复 2# 兰花仙子


    dstat  我百度了下, 没有源代码!
    请问仙子怎么参考?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP