煅圆吧 发表于 2025-11-6 03:40:01

top 命令的load average和vmstat 的r列和b列的关系是什么?区别又是什么?

最近在复习linux系统负载问题排查,主要涉及到cpu,内存,io,网络等指标的一些习惯的linux命令,发现top命令的load average指标和vmstat指标的r列以及b列似乎有些联系,但是又搞不懂具体是什么关系,又有什么区别,于是便上网查询整理了一下,以便日后学习工作中再次用到
# 一、vmstat 的 r 列 含义

vmstat 输出示例(关注前几列):
点击查看代码procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
rb   swpd   free   buffcache   si   so    bi    bo   in    cs us sy id wa st
21123456 123456 123456 123456   0    0    10    20100    200 105 8050r(running or runnable):

表示处于运行态(running)或就绪态(runnable)的进程数,即正在使用 CPU 或等待 CPU 调度的进程数量。
✅ 不包括处于不可中断睡眠(D 状态)的进程。
b(blocked):


在较老版本的 vmstat 中,b 表示阻塞等待资源的进程数。
⚠️ 但在现代 Linux(自 procps-ng 修订后)中,b 列实际上表示的是处于不可中断睡眠状态(TASK_UNINTERRUPTIBLE)的进程数,即通常所说的“D 状态”进程(如等待磁盘 I/O)。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

金娅鸣 发表于 2025-11-13 15:53:45

这个有用。

跟尴 发表于 前天 18:15

东西不错很实用谢谢分享
页: [1]
查看完整版本: top 命令的load average和vmstat 的r列和b列的关系是什么?区别又是什么?