Queue size

本页说明如何在 MikroTik RouterOS 中配置队列大小限制,详细介绍了设置最大数据包数量对流量整形和调度的影响。文中包含比较 100% shaper、scheduler 和默认队列类型的示例,用以说明丢包率和延迟。

Queue size

最大允许的队列大小可以指定为最大内存限制,但许多算法将其简化为最大数据包数量,因此实际使用的内存会随数据包大小而变化。

本页其余部分将演示这在处理数据包数量的队列类型(如 PFIFO、BFIFO、PCQ 和 RED)中是如何工作的。

示例

创建此示例是为了突出队列大小对由特定队列排队流量的影响。

为便于简化可视化,让我们假设我们按步骤处理数据,并且确切知道每一步将接收/传输多少个数据包,也不会发生因丢包而重传的情况。

如上图所示,共有 25 个步骤,在此时间段内总共有 1610 个传入数据包。

100% Shaper

当每个超过允许限制的数据包都会被立即丢弃时,该队列就是一个 100% shaper。这样,所有未被丢弃的数据包都将无任何延迟地发送出去。

让我们在我们的示例中应用 max-limit=100 packets per step 限制:

使用这种限制类型时,1610 个数据包中只有 1250 个能够通过队列(22,4% 丢包率),但所有数据包都无延迟到达。

100% Scheduler

当完全没有丢包,所有数据包都被排队,并将在第一个可能的时刻发送出去时,该队列就是一个 100% Scheduler。

在每个步骤中,队列必须先发送前几个步骤中排队的数据包,然后才能发送本步骤的数据包;这样就能保持正确的数据包顺序。

我们将再次使用相同的限制(100 packets per step)。

没有发生数据包丢失,但有 630 个 (39,1%)数据包延迟了 1 个步骤,另外 170 个 (10,6%)数据包延迟了 2 个步骤。(delay = latency)

Default-small 队列类型

当队列同时使用这两种排队特性(整形和调度)时,也可以选择中间路线。默认情况下,RouterOS 中大多数队列的队列大小为 10。

有 320 个 (19,9%)数据包被丢弃,80 个 (5,0%)数据包延迟了 1 个步骤。

Default 队列类型

RouterOS 中另一个常见的队列大小是 50。

有 190 个 (11.8%)数据包被丢弃,400 个 (24.8%)数据包延迟了 1 个步骤。