SD-WAN 閘道上的封包處理引擎涉及多個階段,並且每個階段之間都會有一個封包處理佇列。由於透過閘道的流量會有突增的特性,預期封包轉送佇列中偶爾會出現封包累積。不過,如果在某些佇列中佇列長度持續過高,則表示有容量問題。

下列範例顯示用來檢視遞交佇列輸出的 debug.py 命令的輸出。

為求簡潔,輸出已遭到截斷而只會顯示第一個和最後一個項目。您可以在命令中排除 -v 選項,以透過表格格式檢視輸出。

vcadmin@vcg1-example:~$ /opt/vc/bin/debug.py -v --handoff
{
  "handoffq": [
    {
      "deq": 12126489784,
      "drops": 0,
      "enq": 12126482089,
      "name": "vc_queue_net_sch",
      "qlength": 0,
      "qlimit": 4096,
      "sleeping": 1475174572,
      "tid": 1502,
      "wmark": 1280,
      "wmark_1min": 385,
      "wmark_5min": 450,
      "wokenup": 1164664965
    }, 
    … 
    {
      "deq": 767292,
      "drops": 0,
      "enq": 767272,
      "name": "vc_queue_ip_common_bh_1",
      "qlength": 0,
      "qlimit": 16384,
      "sleeping": 596612,
      "tid": 1512,
      "wmark": 53,
      "wmark_1min": 3,
      "wmark_5min": 3,
      "wokenup": 596209
    }
  ]
}
vcadmin@vcg1-example:~$ 

您需要記下 qlengthwmark 的值。

qlength 資料行指出佇列中目前已緩衝的封包數。wmark 資料行則表示佇列曾經達到的最大深度,這會指出閘道有多接近捨棄封包。這些捨棄的影響和修復方法主要取決於受監控的佇列。

您應同時監控關鍵佇列和非關鍵佇列。