一、 /proc 目录

Linux系统上的/proc目录是一种文件系统,即proc文件系统,与其它常见的文件系统不同的是,/proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

二、/proc/stat与top的cpu信息

1. /proc/stat

该文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。不同内核版本中该文件的格式可能不大一致,以下通过实例来说明数据该文件中各字段的含义。(内核2.6.32-431版本)

[root@harry proc]# cat /proc/stat
cpu 638 0 1677 868357 2397 7 510 0 0
cpu0 638 0 1677 868357 2397 7 510 0 0
...(后面省略)

第一行的数值表示的是CPU总的使用情况,各数值的含义如下:

参数

解析(单位:jiffies)

user(638)

从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负进程。

nice(0)

从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间

system(1677)

从系统启动开始累计到当前时刻,处于核心态的运行时间

idle(868357)

从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间

iowait(2397)

从系统启动开始累计到当前时刻,IO等待时间(since 2.5.41)

irq(7)

从系统启动开始累计到当前时刻,硬中断时间(since 2.6.0-test4)

softirq(510)

从系统启动开始累计到当前时刻,软中断时间(since 2.6.0-test4)

steal(0)

从系统启动开始累计到当前时刻,这是在虚拟环境中运行时在其他操作系统上花费的时间。(Since Linux 2.6.11)

guest(0)

从系统启动开始累计到当前时刻,在Linux内核的控制下为客户操作系统运行虚拟CPU的时间。(Since Linux 2.6.24)

(jiffies是内核中的一个全局变量,用来记录自系统启动一来产生的节拍数,在linux中,一个节拍大致可理解为操作系统进程调度的最小时间片,不同linux内核可能值有不同,通常在1ms到10ms之间)

总的cpu时间:totalCpuTime = user + nice + system + idle + iowait + irq + softirq + stealstolen  +  guest。

可以看出,stat文件中记录的时间是从开机到当前时间积累的所有cpu时间。

2. top的cpu信息

输入top命令,输出如下:

top - 00:09:46 up  2:55,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 88 total, 1 running, 87 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
...(省略)

Cup(s)那行的含义如下:

0.3%us

用户空间占用CPU百分比

0.3%sy

内核空间占用CPU百分比

0.0%ni

用户进程空间内改变过优先级的进程占用CPU百分比

99.3%id

空闲CPU百分比

0.0%wa

等待输入输出的CPU时间百分比

0.0%hi

硬中断(Hardware IRQ)占用CPU的百分比

0.0%si

软中断(Software Interrupts)占用CPU的百分比

0.0%st

在虚拟环境中运行时在其他操作系统上花费的时间

可以看出,top中显示的cpu信息都是实时的各种参数占用的cpu百分比

3. /proc/stat与top的cpu信息的联系与区别

区别:/proc/stat文件显示的是从启动到当前时间,各种cup时间的累计值;而top则是显示实时的cpu使用情况。

联系:top通过读取/proc/stat去计算cpu占用情况。

/proc/stat 就像汽车仪表盘上的里程数,而top显示的cpu信息则是这辆车的速度。

三、参考

1. Linux中通过/proc/stat等文件计算Cpu使用率

2. Linux /proc目录详解

3. Linux: /proc/stat info is not consistent with top command

4. TOP命令 详解CPU 查看多个核心的利用率按1

5. Linux Top 命令解析

(完)

linux系统/proc/stat信息与top的cup信息的联系及区别的更多相关文章

  1. 获得Unix/Linux系统中的IP、MAC地址等信息

    获得Unix/Linux系统中的IP.MAC地址等信息 中高级  |  2010-07-13 16:03  |  分类:①C语言. Unix/Linux. 网络编程 ②手册  |  4,471 次阅读 ...

  2. 类linux系统/proc/sysrq-trigger文件功能作用

    立即重启计算机      echo "b" > /proc/sysrq-trigger 立即关闭计算机      echo "o" > /proc/ ...

  3. Linux 系统 /proc/[pid]/stat 文件解释

    转载:http://www.net527.cn/a/caozuoxitong/Linux/2012/0823/24385.html [root@localhost ~]# cat /proc/6873 ...

  4. Linux 系统中环境变量/etc/profile、/etc/bashrc、~/.bashrc的区别

      /etc/profile./etc/bashrc.~/.bashrc的区别   1> etc目录下存放系统管理和配置文件 (系统配置) etc/profile:  profile为所有的用户 ...

  5. Linux系统中/etc/rc.local和/etc/rc.d/rc.local的区别

    /etc/rc.d/rc.local 用于添加开机启动命令 /etc/rc.local是/etc/rc.d/rc.local的软连接

  6. 详解linux系统的启动过程及系统初始化

    一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检 -->BIOS(Boot Sequence)-->加载对应引导上的MBR(boot ...

  7. CentOS 6.5结合busybox完成自制Linux系统及远程登录和nginx安装测试

    前言    系统定制在前面的博文中我们就有谈到过了,不过那个裁减制作有简单了点,只是能让系统跑起来而,没有太多的功能,也没的用户登录入口,而这里我们将详细和深入的来谈谈Linux系统的详细定制过程和实 ...

  8. linux系统中毒排查学习记录

    linux有许多的版本,主要关注redhat(centos)和ubuntu这两个主流版本 以下命令基本都需要root权限,执行命令前记得加sudo 第一步 top,ps命令查看系统资源和负载情况,查看 ...

  9. ubuntu系统中查看本机cpu和内存信息的命令和用法

    https://zhidao.baidu.com/question/192966322.html 写出ubuntu linux系统中查看本机cpu和内存信息的命令和用法,以及如何解读这些命令 ubun ...

随机推荐

  1. 西南大学网络实现路由器WIFI共享方案(一号多用户共享)

    背景: 学校更换网页认证,限制多台设备的登录,后台记录发现会将账号封30min禁止登陆,于是想办法冲破这个限制.看到马丁大神的博客知道了学校的检测机制,只需要定时对账号进行认证下线即可实现,不被学校检 ...

  2. C++直接初始化和复制初始化2

    现在正式对C++中对象建立和初始化做一个总结. (1)复制初始化的基本原理 我们知道,对象在内存中的直接表象是在内存中占有一个一定大小的空间.分配空间是建立对象的第一步.但是刚刚分配的空间就像一个没有 ...

  3. Java-Runoob-高级教程:Java 实例

    ylbtech-Java-Runoob-高级教程:Java 实例 1.返回顶部 1. Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. ...

  4. Druid.io系列(八):部署

    介绍 前面几个章节对Druid的整体架构做了简单的说明,本文主要描述如何部署Druid的环境 Imply提供了一套完整的部署方式,包括依赖库,Druid,图形化的数据展示页面,SQL查询组件等.本文将 ...

  5. Apache 的编译安装

    直接看步骤: 1.安装必备环境:gcc.pcre .................................. 2.安装apr.apr-util 3.解压编译安装Apache: ./confi ...

  6. OD 实验(十九) - 对多态和变形程序的逆向

    程序: 这个窗口显示这是一个需要去除的 Nag 窗口 点击“确定” 用 PEiD 看一下 这是一个用汇编语言写的程序 逆向: 用 OD 载入程序 Nag 窗口的标题和文本 右键 -> 查找 -& ...

  7. 【Eclipse】开发专题

    Eclipse插件安装 参考以下几个网页内容 不同版本Eclipse对JDK版本要求http://blog.csdn.net/kevin_pso/article/details/54971739 Ec ...

  8. Tkinter Frame(框架)

       Tkinter Frame(框架): 框架构件在某种友好的方式进行分组和组织的其他部件的过程中是非常重要的.它就像一个容器,这是负责安排其他部件的位置   框架构件在某种友好的方式进行分组和组织 ...

  9. git submodule一些操作

    checkout指定tag cd /path/to/yoursubmodule git checkout yourTag cd .. git add yoursubmodule git commit ...

  10. OpenLayers 3 之 地图视图(View)

    OpenLayers 3 之 地图视图(View) 初始化一幅地图,必备的三要素之一视图(view),这个对象主要是控制地图与人的交互,如进行缩放,调节分辨率.地图的旋转等控制.也就是说每个 map对 ...