O número de processos runnable é dado por procs_running
em /proc/stat
:
awk '/procs_running/ { print $2 }' /proc/stat
Subtraia o número de threads de CPU disponíveis, parando em 0, e você obterá o número de unidades de agendamento (processos ou threads) esperando para ser agendado. Você também pode determinar o número de threads de CPU disponíveis em /proc/stat
, usando as linhas cpu?
. Geral:
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