/proc/stat 详解

来源:互联网 发布:网络代购兼职 编辑:程序博客网 时间:2024/06/05 06:07

参考文档 http://www.linuxhowtos.org/System/procstat.htm
在Linux系统中,可以用/proc/stat文件来计算cpu的利用率。这个文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。

cat /proc/stat 
cpu  1155136389 1231905 44978674 9063940244 29507173 708084 2952258 0 
cpu0 30689825 28890 1748785 1254227431 497939 4 27466 0 
cpu1 34023157 40128 2709498 1242533723 7705366 38994 168543 0 
cpu2 188526530 79728 8786769 1089262719 554314 1 11522 0 
cpu3 320396884 95581 7860683 957615905 1233531 2105 14701 0 
cpu4 32359277 209811 3193725 1233579711 17558083 95132 109938 0 
cpu5 39032158 23321 2321767 1245741039 528447 18 34547 0 
cpu6 54007524 691670 9093859 1222206790 763904 95892 246014 0 
cpu7 456101031 62773 9263584 818772923 665585 475933 2339524 0 
intr 7671001934 4286595911 2 0 450 2 0 0 0 1 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 3105103768 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 6438197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 272863552 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 43 0 0 0 0 0 
ctxt 68380434702 
btime 1346034270 
processes 446082889 
procs_running 2 
procs_blocked 0
输出解释CPU 以及CPU0、CPU1、CPU2、CPU3、CPU4、CPU5、CPU6、每行的每个参数意思(以第一行为例)为: 
参数 解释
user (65376847) 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒 
nice (362756) 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies) 
system (2405159) 从系统启动开始累计到当前时刻,核心时间(单位:jiffies) 
idle (10834971593) 从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies) 
iowait (3765180) 从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) 
irq (93399) 从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)
softirq (2395097) 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)
CPU时间=user+system+nice+idle+iowait+irq+softirq 
“intr”这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。 
“ctxt”给出了自系统启动以来CPU发生的上下文交换的次数。 
“btime”给出了从系统启动到现在为止的时间,单位为秒。 
“processes (total_forks) 自系统启动以来所创建的任务的个数目。 
“procs_running”:当前运行队列的任务的数目。 
“procs_blocked”:当前被阻塞的任务的数目。
那么CPU利用率可以使用以下两个方法。先取两个采样点,然后计算其差值: 
cpu usage=(idle2-idle1)/(cpu2-cpu1)*100 
cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100
原创粉丝点击