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