LinuxでCPUを待つプロセス数を取得するには?

LinuxでCPUを待つプロセス数を取得するには?

CPU使用率が100%の場合は、別のプロセスを実行キューに入れる必要があります。実行キューのサイズを取得するには、どのコマンドを使用できますか?vmstat次のようにCPU関連の値を返すようです。

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 875128 576328 2147136    0    0     1     4    3   11  0  0 99  0  0

マニュアルによると、「:r実行可能プロセスの数(実行中または実行待機中)」によれば、この列はr実行中または待機中のプロセス数を示します。待機プロセスの数はどのようにわかりますか?

答え1

数量実行可能procs_runningプロセスは次のように提供されます/proc/stat

awk '/procs_running/ { print $2 }' /proc/stat

使用可能なCPUスレッドの数(0から停止)を減算すると、予約待機中の予約単位(プロセスまたはスレッド)の数が得られます。/proc/statこの行を使用して、使用可能なCPUスレッドの数を確認することもできますcpu?。包括的な:

awk '/cpu[^ ]/ { nb = substr($1, 4); if (nb > nbcpus) nbcpus = nb };
/procs_running/ { runqueue = $2 - nbcpus; if (runqueue < 0) runqueue = 0; print runqueue }' /proc/stat

関連情報