pi@raspberrypi:~$ cat /proc/stat
cpu 2164 1 2011 286493 3370 0 98 0 0 0 cpu0 635 1 602 71192 846 0 67 0 0 0 cpu1 548 0 478 71675 860 0 8 0 0 0 cpu2 527 0 460 71793 831 0 12 0 0 0 cpu3 454 0 471 71832 832 0 11 0 0 0 intr 365748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 946 1564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 394 0 6105 0 0 0 0 355 337 0 0 3633 0 0 231342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 304 0 0 417 7582 0 0 0 0 27438 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 28936 0 0 0 0 ctxt 170398 btime 1754536859 processes 1129 procs_running 1 procs_blocked 0 softirq 115432 12480 19284 152 2006 6140 0 35834 18414 0 21122。
/proc/stat 是 Linux 内核提供的一个非常重要的接口,用于监控系统运行状态。它包含了 CPU 使用情况、中断、上下文切换、启动时间、进程统计等信息。下面我来逐项解释:
🧠 1. CPU 使用情况
text
cpu 2164 1 2011 286493 3370 0 98 0 0 0
这是所有 CPU 核心的总和,后面是各个时间项的累计“jiffies”(时间单位,通常是 1/100 秒):
| 字段位置 | 名称 | 含义 |
|---|---|---|
| 1 | user | 用户态运行时间(不含 nice) |
| 2 | nice | 用户态运行时间(nice 优先级) |
| 3 | system | 内核态运行时间 |
| 4 | idle | 空闲时间 |
| 5 | iowait | 等待 I/O 的时间 |
| 6 | irq | 硬中断时间 |
| 7 | softirq | 软中断时间 |
| 8 | steal | 被虚拟机偷走的时间(通常为 0) |
| 9 | guest | 客户虚拟机运行时间 |
| 10 | guest_nice | 客户虚拟机 nice 时间 |
每个 cpuN 行表示对应核心的统计:
text
cpu0 635 1 602 71192 846 0 67 0 0 0
cpu1 548 0 478 71675 860 0 8 0 0 0
cpu2 527 0 460 71793 831 0 12 0 0 0
cpu3 454 0 471 71832 832 0 11 0 0 0
你可以看到每个核心的使用情况略有不同,说明系统在多核之间分配任务是比较均衡的。
⚡ 2. 中断统计
text
intr 365748 ...
-
intr后面是每个中断号的累计次数。 -
第一个数字是所有中断的总数(365748)。
-
后面是每个中断号的计数,例如
946是中断号 18 的触发次数。
这可以用于分析硬件设备的活跃度,比如网卡、USB、GPIO 等。
🔄 3. 上下文切换
text
ctxt 170398
-
表示系统发生了 170,398 次上下文切换。
-
上下文切换是指 CPU 从一个进程切换到另一个进程,频繁切换可能影响性能。
⏱️ 4. 系统启动时间
text
btime 1754536859
-
表示系统启动的时间戳(自 Unix epoch 起的秒数)。
-
可以用
date -d @1754536859转换为人类可读时间。
🧵 5. 进程统计
text
processes 1129
procs_running 1
procs_blocked 0
| 字段 | 含义 |
|---|---|
processes | 启动过的进程总数(1129) |
procs_running | 当前正在运行的进程数(1) |
procs_blocked | 当前阻塞等待 I/O 的进程数(0) |
🌊 6. 软中断统计
text
softirq 115432 12480 19284 152 2006 6140 0 35834 18414 0 21122
软中断是内核处理异步事件的一种机制,后面是每种软中断类型的触发次数:
| 位置 | 类型 | 含义 |
|---|---|---|
| 0 | HI | 高优先级任务 |
| 1 | TIMER | 定时器 |
| 2 | NET_TX | 网络发送 |
| 3 | NET_RX | 网络接收 |
| 4 | BLOCK | 块设备 |
| 5 | IRQ_POLL | 中断轮询 |
| 6 | TASKLET | 任务片 |
| 7 | SCHED | 调度器 |
| 8 | HRTIMER | 高精度定时器 |
| 9 | RCU | Read-Copy-Update |
🧭 总结
你可以用这些数据来:
-
分析 CPU 使用率和负载分布
-
监控硬件中断和软中断活跃度
-
评估系统是否频繁上下文切换
-
判断是否有进程阻塞或资源瓶颈
如果你想实时监控这些指标,可以使用 vmstat, iostat, mpstat, 或 sar 等工具。
985

被折叠的 条评论
为什么被折叠?



