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:~$
您需要关注 qlength 和 wmark 值。
qlength 列指示当前在队列中缓冲的数据包数。wmark 列指示队列曾经到达的最大深度,这表示网关距离丢弃数据包有多远。这些问题的影响和修复在很大程度上取决于监控的队列。
您应同时监控关键队列和非关键队列。