快速业务通道

linux下如何获取cpu的利用率

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-15
会有增加,要算百分比,得用上上一次的状态值.

  这里计算cpu使用率是有问题的,需要使用上一状态的值来计算.

  返回

  elf 发表于 2007-11-16 09:06 #4

  正确的计算方法是,等上一个时间:

  1、记录某个时刻cpu的使用情况

  2、等上一个时间段

  3、再记录此刻的cpu使用情况

  4、计算总的时间片

  把第一次的所有cpu使用情况求和,得到j1

  把第二次的所有cpu使用情况求和,得到j2

  j2-j1得到这个时间段的所有时间片

  即total=j2-j1=第二次的所有列的和-第一次的所有列的和

  5、计算idle时间 拥有帝国一切,皆有可能。欢迎访问phome.net

  idle对应第五列的数据,用第二次的减去第一次的即可

  idle=第二次的第五列-第一次的第五列

  6、计算cpu使用率

  rate=(total-idle)/total

  见:http://oss.lzu.edu.cn/blog/article.php?tid_1379.html

  我们在搞性能测试的时候,对后台服务器的CPU利用率监控是一个常用的手段.服务器的CPU利用率高,则表明服务器很繁忙.如果前台响应时间越来越大,而后台CPU利用率始终上不去,说明在某个地方有瓶颈了,系统需要调优.这个是即使不懂技术的人都容易理解的事情.

  上面理解对吗?我个人觉得不十分准确.这个要看后台你测试的进程是什么类型的.如果是计算密集型的进程,当前端压力越来越大的时候,很容易把CPU利用率打上去.但是如果是I/O网络密集型的进程,即使客户端的请求越来越多,但是服务器CPU不一定能上去,这个是你要测试的进程的自然属性决定的.

  什么是CPU利用率呢?在Linux/Unix下,CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间.从计算机加电开始,CPU就一直忙个不停,CPU的利用率始终是100%.当没有用户进程需要执行的时候,CPU就执行系统缺省的空闲进程.我们所指的CPU利用率是指CPU执行非系统空闲进程的时间 / CPU总的执行时间.

  在Linux的内核中,有一个全局变量:Jiffies. Jiffies代表时间.它的单位随硬件平台的不同而不同.系统里定义了一个常数HZ,代表每秒种最小时间间隔的数目.这样jiffies的单位就是 1/HZ.Intel平台jiffies的单位是1/100秒,这就是系统所能分辨的最小时间间隔了.每个CPU时间片,Jiffies都要加1. CPU的利用率就是用执行用户态 系统态的Jiffies除以总的Jifffies来表示.

  在Linux系统中,CPU利用率的计算来源在/proc/stat文件,这个文件的头几行记录了每个CPU的用户态,系统态,空闲态等状态下的不同的Jiffies,常用的监控软件就是利用/proc/stat里面的这些数据来计算CPU的利用率的.

  包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻. 拥有帝国一切,皆有可能。欢迎访问phome.net

  /proc/stat/

  [work@builder ~]$ cat /proc/stat

  cpu 432661 13295 86656 422145968 171474 233 5346

  cpu0 123075 2462 23494 105543694 16586 0 4615

  cpu1 111917 4124 23858 105503820 69697 123 371

  cpu2 103164 3554 21530 105521167 64032 106 334

  cpu3 94504 3153 17772 105577285 21158 4 24

  intr 1065711094 1057275779 92 0 6 6 0 4 0 3527 0 0 0 70 0 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7376958 0

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号