【Linux】/proc/stat详解 完整验证版

365bet体育在线总站 📅 2025-08-09 16:36:03 👤 admin 👁️ 8489 ❤️ 361
【Linux】/proc/stat详解 完整验证版

最初是想参考网上的文档完成自己的功能,却由于网上的解释不全,自己看man文档。读了文档后发现网上文档的部分解决是存在问题的,遂将这里的相关信息进行梳理以作备用,并分享给大家。希望也能对大家有帮助。

/proc/stat中包含系统启动以来的很多系统和内核的统计信息,平时大家比较关心的比如包括CPU运行情况、中断情况、启动时间、上线文切换次数、运行中的进程等信息都在其中。

一、文件全貌

# Linux下查看/proc/stat的具体信息如下

[root@WSC-31-2 ~]# cat /proc/stat

cpu 60382 1 80032 198934063 2349 0 109 0 0 0

cpu0 2405 0 2084 4140924 682 0 6 0 0 0

... # 此处较多冗余信息,简化之

cpu47 200 0 134 4147222 10 0 0 0 0 0

intr 33622492 64 ... 0 0 0 0 # 此处较多冗余信息,简化之

ctxt 68533835

btime 1528905555

processes 318904

procs_running 1

procs_blocked 0

softirq 16567860 0 3850777 8555 5448802 116727 0 1 3577293 1290 3564415

这里将上述内容划分成几个模块进行分析

二、字段含义分析

name user nice system idle iowait irrq softirq steal guest guest_nice

cpu 60382 1 80032 198934063 2349 0 109 0 0 0

cpu0 2405 0 2084 4140924 682 0 6 0 0 0

... # 此处较多冗余信息,简化之

cpu47 200 0 134 4147222 10 0 0 0 0 0

cpu指标

含义

时间单位

备注

user

用户态时间

jiffies

一般/高优先级,仅统计nice<=0

nice

nice用户态时间

jiffies

低优先级,仅统计nice>0

system

内核态时间

jiffies

idle

空闲时间

jiffies

不包含IO等待时间

iowait

I/O等待时间

jiffies

硬盘IO等待时间

irq

硬中断时间

jiffies

softirq

软中断时间

jiffies

steal

被盗时间

jiffies

虚拟化环境中运行其他操作系统上花费的时间(since Linux 2.6.11)

guest

来宾时间

jiffies

操作系统运行虚拟CPU花费的时间(since Linux 2.6.24)

guest_nice

nice来宾时间

jiffies

运行一个带nice值的guest花费的时间(since Linux 2.6.33)

说明:

1、1 jiffies = 0.01s = 10ms

2、常用计算等式:CPU时间 = user + system + nice + idle + iowait + irq + softirq

3、man手册中iowait有单独说明,iowait时间是不可靠值,具体原因如下:

1)CPU不会等待I/O执行完成,而iowait是等待I/O完成的时间。

当CPU进入idle状态,很可能会调度另一个task执行,所以iowait计算时间偏小;

2)多核CPU中,iowait的计算并非某一个核,因此计算每一个cpu的iowait非常困难

3)这个值在某些情况下会减少

更多信息可以通过man手册查看:http://man7.org/linux/man-pages/man5/proc.5.html

intr 33622492 64 ... 0 0 0 0 # 此处较多冗余信息,简化之

# 这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数

# 然后每个数对应一个特定的中断自系统启动以来所发生的次数。

ctxt 68533835 #自系统启动以来CPU发生的上下文交换的次数

btime 1528905555 #系统启动到现在的时间,单位为秒(s)

processes 318904 #自系统启动以来所创建的任务的个数目

procs_running 1 #当前运行队列的任务的数目

procs_blocked 0 #当前被阻塞的任务的数目

softirq 16567860 0 3850777 8555 5448802 116727 0 1 3577293 1290 3564415

# 此行显示所有CPU的softirq总数

# 第一列是所有软件和每个软件的总数

# 后面的列是特定softirq的总数

技巧

[root@WSC-31-2 ~]# cat /proc/uptime

74495.52 3570301.60

# 第一个参数是开机到现在的时间,单位为秒(s)

# 第二个参数是开机到现在CPU空闲时间,单位为秒(s)

# 通过下列语句,计算出当前时间

ut=`cut -d' ' -f1

ts=`date +%s`

date -d"70-1-1 + $ts sec - $ut sec + 74495.52 sec" +"%F %T"

相关推荐

书字五行属什么的
365网址经常打不开

书字五行属什么的

📅 08-08 👁️ 6777
剑网3明教门派宠物波斯猫任务全流程图文攻略
365bet最新备用

剑网3明教门派宠物波斯猫任务全流程图文攻略

📅 07-29 👁️ 6188
什么是郄穴?人体16个郄穴的主治作用
365bet最新备用

什么是郄穴?人体16个郄穴的主治作用

📅 08-06 👁️ 2461