/proc/stat
文件包含了一些关于系统运行状态的信息,这里我们来简单解读下其主要的字段:
-
cpu
: 提供系统所有 CPU 的汇总统计。每个数字代表特定类型的时间,单位为 jiffies(在 Linux 中,1 jiffy 是内核的一个时钟滴答,具体长度依赖于系统配置,通常为 1/100 或 1/1000 秒)。user
: 用户态花费的时间,不包括 nice 时间。nice
: 调整为 nice 的用户态进程花费的时间。system
: 内核态花费的时间。idle
: 空闲时间,没有任何任务执行也没有等待 I/O。iowait
: 等待 I/O 完成的时间。irq
: 处理硬件中断的时间。softirq
: 处理软件中断的时间。steal
: 在虚拟环境中,等待其他虚拟 CPU 运行的时间。guest
: 运行虚拟 CPU 的时间。guest_nice
: 调整为 nice 的运行虚拟 CPU 的时间。
-
cpuN
(例如 cpu0, cpu1):这是每个 CPU 核心的统计,格式与cpu
行相同。 -
ctxt
: 上下文切换的次数。 -
btime
: 自系统启动以来的秒数。 -
processes
: 自系统启动以来创建的进程数。 -
procs_running
: 当前运行队列里的任务数。 -
procs_blocked
: 当前被阻塞等待 I/O 完成的任务数。
请注意,这个文件中的所有数字都是从系统启动开始累计的,不是当前的即时值。如果你需要获取某段时间内的数据,你需要读取同一个值的两个样本并计算它们之间的差异。