The Gateway is a pipeline architecture, and each stage of the pipeline has a handoff queue in between. Due to the bursty nature of traffic through a Gateway, occasional packet builds up in the handoff queues are expected. However, consistent high queue length in certain queues indicate a capacity problem.

The following example shows output of the debug.py command to view handoff queue output.

The output has been truncated to display only the first and last entries, for conciseness. You can exclude the -v option in the command to view the output in tabular format.

vcadmin@vcg1-example:~$ /opt/vc/bin/debug.py -v --handoff
{
  "handoffq": [
    {
      "deq": 1087872263, 
      "drops": 0, 
      "dummy": 81805328, 
      "enq": 1087872265, 
      "head": 81805328, 
      "lockfree": 0, 
      "next": 0, 
      "qlength": 2, 
      "qlimit": 2048, 
      "sleeping": 1, 
      "state": "UNMONITORED", 
      "tail": 81805328, 
      "wmark": 948, 
      "wokenup": 817162303
    }, 
    … 
    {
      "deq": -1801919228, 
      "drops": 0, 
      "dummy": 176733280, 
      "enq": -1801919223, 
      "head": 176733280, 
      "lockfree": 0, 
      "name": "glob_ls_0", 
      "next": 0, 
      "qlength": 5, 
      "qlimit": 1024, 
      "sleeping": 1, 
      "state": "UNMONITORED", 
      "tail": 176733280, 
      "wmark": 1024, 
      "wokenup": 1567885088
    }
  ]
}
vcadmin@vcg1-example:~$ 

You need to note the values of qlength and wmark.

The qlength column indicates the number of packets that are currently buffered in the queue. The wmark column indicates the maximum depth a queue has ever reached, which indicates how close a Gateway has come to dropping packets. The impact and remediation for these depends largely on the queue being monitored.

You should monitor both the critical and non-critical queues.