Demonstrations of runqlen, the Linux eBPF/bcc version.


This program summarizes scheduler queue length as a histogram, and can also
show run queue occupancy. It works by sampling the run queue length on all
CPUs at 99 Hertz.

As an example, here is an idle system:

# ./runqlen.py
Sampling run queue length... Hit Ctrl-C to end.
^C
     runqlen       : count     distribution
        0          : 1776     |****************************************|

This shows a zero run queue length each time it was sampled.

And now a heavily loaded system:

# ./runqlen.py
Sampling run queue length... Hit Ctrl-C to end.
^C
     runqlen       : count     distribution
        0          : 1068     |****************************************|
        1          : 642      |************************                |
        2          : 369      |*************                           |
        3          : 183      |******                                  |
        4          : 104      |***                                     |
        5          : 42       |*                                       |
        6          : 13       |                                        |
        7          : 2        |                                        |
        8          : 1        |                                        |

Now there is often threads queued, with one sample reaching a queue length
of 8. This will cause run queue latency, which can be measured by the bcc
runqlat tool.


Here's an example of an issue that runqlen can identify. Starting with the
system-wide summary:

# ./runqlen.py 
Sampling run queue length... Hit Ctrl-C to end.
^C
     runqlen       : count     distribution
        0          : 1209     |****************************************|
        1          : 372      |************                            |
        2          : 73       |**                                      |
        3          : 3        |                                        |
        4          : 1        |                                        |
        5          : 0        |                                        |
        6          : 0        |                                        |
        7          : 237      |*******                                 |

This shows there is often a run queue length of 7. Now using the -C option to
see per-CPU histograms:

# ./runqlen.py -C
Sampling run queue length... Hit Ctrl-C to end.
^C

cpu = 0
     runqlen       : count     distribution
        0          : 257      |****************************************|
        1          : 64       |*********                               |
        2          : 5        |                                        |
        3          : 0        |                                        |
        4          : 0        |                                        |
        5          : 0        |                                        |
        6          : 1        |                                        |

cpu = 1
     runqlen       : count     distribution
        0          : 226      |****************************************|
        1          : 90       |***************                         |
        2          : 11       |*                                       |

cpu = 2
     runqlen       : count     distribution
        0          : 264      |****************************************|
        1          : 52       |*******                                 |
        2          : 8        |*                                       |
        3          : 1        |                                        |
        4          : 0        |                                        |
        5          : 0        |                                        |
        6          : 1        |                                        |
        7          : 0        |                                        |
        8          : 1        |                                        |

cpu = 3
     runqlen       : count     distribution
        0          : 0        |                                        |
        1          : 0        |                                        |
        2          : 0        |                                        |
        3          : 0        |                                        |
        4          : 0        |                                        |
        5          : 0        |                                        |
        6          : 0        |                                        |
        7          : 327      |****************************************|

cpu = 4
     runqlen       : count     distribution
        0          : 255      |****************************************|
        1          : 63       |*********                               |
        2          : 9        |*                                       |

cpu = 5
     runqlen       : count     distribution
        0          : 244      |****************************************|
        1          : 78       |************                            |
        2          : 3        |                                        |
        3          : 2        |                                        |

cpu = 6
     runqlen       : count     distribution
        0          : 253      |****************************************|
        1          : 66       |**********                              |
        2          : 6        |                                        |
        3          : 1        |                                        |
        4          : 1        |                                        |

cpu = 7
     runqlen       : count     distribution
        0          : 243      |****************************************|
        1          : 74       |************                            |
        2          : 6        |                                        |
        3          : 1        |                                        |
        4          : 0        |                                        |
        5          : 1        |                                        |
        6          : 2        |                                        |

The run queue length of 7 is isolated to CPU 3. It was caused by CPU binding
(taskset). This can sometimes happen by applications that try to auto-bind
to CPUs, leaving other CPUs idle while work is queued.


runqlat accepts an interval and a count. For example, with -T for timestamps:

# ./runqlen.py -T 1 5
Sampling run queue length... Hit Ctrl-C to end.

19:51:34
     runqlen       : count     distribution
        0          : 635      |****************************************|
        1          : 142      |********                                |
        2          : 13       |                                        |
        3          : 0        |                                        |
        4          : 1        |                                        |

19:51:35
     runqlen       : count     distribution
        0          : 640      |****************************************|
        1          : 136      |********                                |
        2          : 13       |                                        |
        3          : 1        |                                        |
        4          : 0        |                                        |
        5          : 0        |                                        |
        6          : 0        |                                        |
        7          : 0        |                                        |
        8          : 0        |                                        |
        9          : 0        |                                        |
        10         : 1        |                                        |

19:51:36
     runqlen       : count     distribution
        0          : 603      |****************************************|
        1          : 170      |***********                             |
        2          : 16       |*                                       |
        3          : 1        |                                        |
        4          : 0        |                                        |
        5          : 0        |                                        |
        6          : 0        |                                        |
        7          : 0        |                                        |
        8          : 0        |                                        |
        9          : 1        |                                        |

19:51:37
     runqlen       : count     distribution
        0          : 617      |****************************************|
        1          : 154      |*********                               |
        2          : 20       |*                                       |
        3          : 0        |                                        |
        4          : 0        |                                        |
        5          : 0        |                                        |
        6          : 0        |                                        |
        7          : 0        |                                        |
        8          : 0        |                                        |
        9          : 0        |                                        |
        10         : 0        |                                        |
        11         : 1        |                                        |

19:51:38
     runqlen       : count     distribution
        0          : 603      |****************************************|
        1          : 161      |**********                              |
        2          : 24       |*                                       |
        3          : 4        |                                        |

The spikes in run queue length of 11 are likely threads waking up at the same
time (a thundering herd), and then are scheduled and complete their execution
quickly.


The -O option prints run queue occupancy: the percentage of time that there
was work queued waiting its turn. Eg:

# ./runqlen.py -OT 1 
Sampling run queue length... Hit Ctrl-C to end.

19:54:53
runqocc: 41.09%

19:54:54
runqocc: 41.85%

19:54:55
runqocc: 41.47%

19:54:56
runqocc: 42.35%

19:54:57
runqocc: 40.83%
[...]

This can also be examined per-CPU:

# ./runqlen.py -COT 1 
Sampling run queue length... Hit Ctrl-C to end.

19:55:03
runqocc, CPU 0    32.32%
runqocc, CPU 1    26.26%
runqocc, CPU 2    38.38%
runqocc, CPU 3   100.00%
runqocc, CPU 4    26.26%
runqocc, CPU 5    32.32%
runqocc, CPU 6    39.39%
runqocc, CPU 7    46.46%

19:55:04
runqocc, CPU 0    35.00%
runqocc, CPU 1    32.32%
runqocc, CPU 2    37.00%
runqocc, CPU 3   100.00%
runqocc, CPU 4    43.43%
runqocc, CPU 5    31.31%
runqocc, CPU 6    28.00%
runqocc, CPU 7    31.31%

19:55:05
runqocc, CPU 0    43.43%
runqocc, CPU 1    32.32%
runqocc, CPU 2    45.45%
runqocc, CPU 3   100.00%
runqocc, CPU 4    29.29%
runqocc, CPU 5    36.36%
runqocc, CPU 6    36.36%
runqocc, CPU 7    30.30%

19:55:06
runqocc, CPU 0    40.00%
runqocc, CPU 1    38.00%
runqocc, CPU 2    31.31%
runqocc, CPU 3   100.00%
runqocc, CPU 4    31.31%
runqocc, CPU 5    28.28%
runqocc, CPU 6    31.00%
runqocc, CPU 7    29.29%
[...]


USAGE message:

# ./runqlen -h
usage: runqlen [-h] [-T] [-O] [-C] [interval] [count]

Summarize scheduler run queue length as a histogram

positional arguments:
  interval         output interval, in seconds
  count            number of outputs

optional arguments:
  -h, --help       show this help message and exit
  -T, --timestamp  include timestamp on output
  -O, --runqocc    report run queue occupancy
  -C, --cpus       print output for each CPU separately

examples:
    ./runqlen            # summarize run queue length as a histogram
    ./runqlen 1 10       # print 1 second summaries, 10 times
    ./runqlen -T 1       # 1s summaries and timestamps
    ./runqlen -O         # report run queue occupancy
    ./runqlen -C         # show each CPU separately
