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
表示程序數,包括正在執行和等待的程序。我怎樣才能得到等待程序的數量?
可執行程序的數量由
procs_running
in給出/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