Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1693388
  • 博文数量: 511
  • 博客积分: 967
  • 博客等级: 准尉
  • 技术积分: 2560
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-06 14:19
文章分类

全部博文(511)

文章存档

2016年(11)

2015年(61)

2014年(257)

2013年(63)

2012年(119)

分类: LINUX

2012-07-31 18:02:23

1.获取CPU状态的相关数据

以下信息是从linux文件系统中,进入proc/stat 文件中获取的CPU的相关状态和数据

cpu 55027 327 38497 2075733 396 0 533 0 0 0

cpu0 25028 145 20771 1038607 195 0 527 0 0 0
cpu1 29999 182 17726 1037126 201 0 6 0 0 0
intr 813026 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 17 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 161 0 0 0 0 0 0 0 0 101173 0 0 0 0 0 0 0 0 0 0 650367 0 0 0 0 0 0 0 0 0 0 0 0 0 7880 0 0 1386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 52042 0 0 0 0 0 0 0 0 0 0
ctxt 109948350
btime 1167662302
processes 2583
procs_running 1
procs_blocked 0

softirq 4231990 0 2170513 32169 70417 0 0 1724 1344955 459 611753

2.对各个行含义的解释

user (55027) 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒

nice (327) 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)

注意:用户态的真正时间应该包括:user时间+nice时间 即:55027 + 327

system (38497) 从系统启动开始累计到当前时刻,核心时间(单位:jiffies)

idle (2075733) 从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)

iowait (396) 从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies)

irq (0) 从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)

softirq (533) 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)

注意:中断时间的真正时间应该包括:iowait时间+irq时间+softirq 即:396 + 0 + 533

*******************************************************************************************************************

“intr”这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。

“ctxt” 给出了自系统启动以来CPU发生的上下文交换的次数。

“btime”给出了从系统启动到现在为止的时间,单位为秒。

“processes (total_forks) 自系统启动以来所创建的任务的个数目。

“procs_running”:当前运行队列的任务的数目。

“procs_blocked”:当前被阻塞的任务的数目。

3.计算CPU的使用率

那么如何计算CPU的使用率呢? 首先我们需要获得短时间内,两个CPU的状态数据,然后根据差值计算CPU的使用率.

user_pass = user2 - user1

system_pass = system2 - system1

irq_pass = irq2 - irq1

idle_pass = idle2 - idle1

cpu利用率=(user_pass + system_pass + irq_pass)*100%/(user_pass +irq_pass+ system_pass + idle_pass)

阅读(2294) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~