如果 vmstat 中 R (runqueue) 大于 B (waitqueue),是否是 I/O 限制?

Joh*_*rez 5 cpu-usage

如果 runqueue 是等待开启 CPU 的进程数 + 当前正在运行的进程数,而 waitqueue 是等待 I/O 的进程数,那么 vmstat 输出中的\xe2\x80\x99t B 会大于 R意味着存在 I/O 限制,而不是 CPU 限制?我很困惑,因为下面的链接说的是相反的...\n来自http://nonfeaturedtestingtools.blogspot.com/2013/03/vmstat-o ​​utput-explained.html?m=1

\n\n

\xe2\x80\x9c如果可运行线程 (r) 除以 CPU 数量大于 1 -> 可能的 CPU 瓶颈(如果我们有足够的资源,则 (r) 应该与 CPU 数量(正常运行时间中的逻辑 CPU)进行比较) CPU 或我们有更多线程。)阻塞进程列 (b) 中的数字较高表示磁盘速度较慢。(r) 应始终高于 (b);如果不是,通常意味着您有 CPU 瓶颈\xe2\x80\x9d

\n

jll*_*gre 4

in 的数字高于binr意味着 CPU 经常处于空闲状态,因此您会感到困惑。该文档应该是“意味着您有 I/O 瓶颈”。

请注意,该页面表示r永远不应高于 CPU 数量,并且在 12 个 CPU 系统上 r=16 是一个“严重”问题。这是相当夸张的。这仅仅意味着 CPU 已被充分利用,并且一些线程正在等待。通常没什么大不了的。

最后,不要混淆线程和进程,就像链接文档有时也会这样做一样。和列显示线程数,而不是进程数rb并非所有进程都是单线程的。