linux系统/proc/stat信息与top的cup信息的联系及区别

一、 /proc 目录

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

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

1. /proc/stat

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

[[email protected] 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 命令解析

(完)

原文地址:https://www.cnblogs.com/harrymore/p/9094898.html

时间: 2024-10-01 12:00:51

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

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

获得Unix/Linux系统中的IP.MAC地址等信息 中高级  |  2010-07-13 16:03  |  分类:①C语言. Unix/Linux. 网络编程 ②手册  |  4,471 次阅读 作者:diaoyf  |  文章来源:http://programmerdigest.cn 实际环境和特殊需求往往会将简单问题复杂化,比如计算机IP地址,对于一个连接中socket,可以直接获得本端和对端的IP.端口信息.但在一些特殊场合我们可能需要更多的信息,比如系统中有几块网卡,他们的Mac地

Linux 系统监控、诊断工具-top,vmstat,iostat,iotop

1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器硬件配置一样,部署的软件都一样,却单单这一台负载有问题,初步猜测可能硬件有问题了. 同时,我们还需要把负载有异常的罪魁祸首揪出来,到时候从软件.硬件层面分别寻找解决方案. 2.排查: 从 top 中可以看到 load average 偏高,%wa 很高,%us 偏低: 从上图我们大致可以推断 IO

linux 系统 /proc

1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口. 用户和应用程序可以通过 proc得到系统的信息,并可以改变内核的某些参数.由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是 动态从系统内核读出所需信息并提交的.下面列出的这些文件或子文件夹,并不是都是在你的

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

立即重启计算机      echo "b" > /proc/sysrq-trigger 立即关闭计算机      echo "o" > /proc/sysrq-trigger 导出内存分配的信息    echo "m"  > proc/sysrq-trigger        (可以用/var/log/message查看)Outputs memory statistics to the console 导出当前CPU寄存器信息和

Linux系统中如何查看日志信息

日志文件是用于记录Linux系统中各种运行消息的文件,不同的日志文件记载了不同类型的信息,对于诊断和解决系统中的问题很有帮助 分析日志文件 日志数据主要包括三种类型:内核及系统日志.用户日志.程序日志 #对于大多数的文本格式的日志文件,使用tail.more.less.cat 等命令就可查看日志内容 #对于一些二进制格式的日志文件(如用户日志文件),使用who.w.users.last.lastb等 内核及系统日志的配置文件为 /etc/rsyslog.conf,通过查看文件内容,可以了解到系统

UNIX/Linux系统取证之信息采集案例

UNIX/Linux系统取证之信息采集案例 在UNIX/Linux系统取证中,及时收集硬盘的信息至关重要,<Unix/Linux网络日志分析与流量监控>一书中,将详细讨论各种常见系统进程系统调用及镜像文件获取方法.下面简单举几个例子. 1.收集正在运行的进程 在UNIX/Linux取证时很多系统和网络信息是短时存在的可谓是转瞬即逝,如何准确的捕捉到哪些蛛丝马迹呢?网络安全人员需要具有敏锐的观察力和丰富的经验下面例举几个常用的方法. 首先,在收集主机上启动一个监听进程: #nc -l -p 10

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

一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检 -->BIOS(Boot Sequence)-->加载对应引导上的MBR(bootloader)-->主引导设置加载其 BootLoader-->Kernel初始化-->initrd—>/etc/init进程加载/etc/inittab,其进程流 程图如下: 二.剖析详细启动过程 ⑴. POST开机自检:电脑主机打开电源的时候,随后会听到滴的一声,系统启动开始了开机

制作busybox完成自制Linux系统及远程登录和nginx安装测试

前言系统定制在前面的博文中我们就有谈到过了,不过那个裁减制作有简单了点,只是能让系统跑起来而,没有太多的功能,也没的用户登录入口,而这里我们将详细和深入的来谈谈Linux系统的详细定制过程和实现用户例如.远程登录和Nginx安装过程.一步一步从头开始定制属于我们自己的系统. 正文首先我们先来简单的介绍一下我们这里定制属于自己的Linux系统的基本元素,其中一些相关的信息也可以参考我前面写过的博文 一个定制的linux内核+一个定制的busybox就可以定制一个小型的Linux操作系统了,安装Dr

Linux系统故障分析与排查--日志分析

处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键.熟悉Linux系统的日志管理,了解常见故障的分析与解决办法,将有助于管理员快速定位故障点,"对症下药"及时解决各种系统问题. 一.主要日志文件包括以下三种类型:a.内核及系统日志:这种日志数据由系统服务syslog统一管理,根据其主配置文件"/etc/syslog.conf"中的设置决定将内核消息及各种系统程序消息记录到什么位置.系统中有相当一部分程序会把自己的日