0

If CPU is running 100% usage, other processes should be put inside a run queue. Which command can I use to get the size of the run-queue? vmstat seems to return a related value of the CPU like below:

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

According to the manual, "r: The number of runnable processes (running or waiting for run time).", the column r indicates the number of processes including both running and wait processes. How can I just get the number the waiting processes?

1

1 Answer 1

3

The number of runnable processes is given by procs_running in /proc/stat:

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

Subtract the number of CPU threads available, stopping at 0, and you’ll get the number of scheduling units (processes or threads) waiting to be scheduled. You can determine the number of CPU threads available from /proc/stat too, using the cpu? lines. Overall:

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
4
  • Is lscpu command used to get the number of available CPU threads? The calculation would be Thread(s) per core * Core(s) per socket * Socket(s)? Commented Feb 12, 2018 at 8:28
  • You can look at the CPU(s) line from lscpu, or calculate the value from /proc/stat; see my update. Commented Feb 12, 2018 at 8:48
  • According to this article: access.redhat.com/sites/default/files/attachments/… the definition of runnable is When a process is in a Runnable state, it means it has all the resources it needs to run, except that the CPU is not available. So in this case, I don't need to substract the number of CPU available threads, right? Commented Feb 13, 2018 at 0:07
  • No, runnable in /proc/stat doesn’t distinguish between running and runnable, it looks at the task state; note that in the article you link to, both states are the same. Commented Feb 14, 2018 at 12:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .