Queue Burst

Queue Burst 功能允许在平均流量保持在阈值以下时,临时突发超出配置限制的带宽,它使用 burst-limit 和 burst-time 参数来控制突发的持续时间和大小。

Queue Burst

简介

突发(Burst)是一项功能,它允许在有限的时间内,即使所需速率大于 MIR(max-limit),也满足队列对额外带宽的需求。

只有在队列最近 burst-time 秒内的 average-rate 小于 burst-threshold 时,才可能发生突发。如果队列最近 burst-time 秒内的 average-rate 大于或等于 burst-threshold,突发将停止。

突发机制很简单——如果允许突发,则用 burst-limit 值替代 max-limit 值。当不允许突发时,max-limit 值保持不变。

  1. burst-limit(NUMBER):允许突发时可达到的最大 上传/下载 数据速率。
  2. burst-time(TIME):计算平均数据速率所基于的时间段,以秒为单位。(这不是实际突发的持续时间)。
  3. burst-threshold(NUMBER):这是突发开/关的切换值。
  4. average-rate(只读):每经过 burst-time 的 1/16,路由器就会计算每个类在最近 burst-time 秒内的平均数据速率。
  5. actual-rate(只读):队列的实际流量传输速率。

示例

取值:limit-at=1M、max-limit=2M、burst-threshold=1500k、burst-limit=4M

客户端将尝试下载两个 4MB(32Mb)的数据块,第一次下载从第 0 秒开始,第二次下载从第 17 秒开始。上一分钟流量未被使用。

Burst-time=16s

正如我们所见,客户端一请求带宽,就能在 6 秒内获得 4Mbps 的突发。这是给定取值下可能的最长突发 (longest-burst-time = burst-threshold * burst-time / burst-limit)。一旦突发耗尽,其余数据将以 2Mbps 下载。这样,一个数据块在 10 秒内下载完成——如果没有突发,则需要 16 秒。在下一次下载开始前,突发有 7 秒的时间充电。

请注意,下载开始时突发仍处于不允许状态,它是在之后——也就是下载过程中——才开始生效的。因此在这个例子中,我们证明了突发可能发生在下载过程中。该突发长度约为 4 秒,第二个数据块比没有突发时快了 4 秒完成下载。

平均速率每 1/16 个 burst time 计算一次,因此在本例中为每 1 秒一次。

时间average-rateburstactual-rate
0(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/16=0Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
1(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4)/16=250Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
2(0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+4)/16=500Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
3(0+0+0+0+0+0+0+0+0+0+0+0+0+4+4+4)/16=750Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
4(0+0+0+0+0+0+0+0+0+0+0+0+4+4+4+4)/16=1000Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
5(0+0+0+0+0+0+0+0+0+0+0+4+4+4+4+4)/16=1250Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
6(0+0+0+0+0+0+0+0+0+0+4+4+4+4+4+4)/16=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps
7(0+0+0+0+0+0+0+0+0+4+4+4+4+4+4+2)/16=1625Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps
8(0+0+0+0+0+0+0+0+4+4+4+4+4+4+2+2)/16=1750Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps
9(0+0+0+0+0+0+0+4+4+4+4+4+4+2+2+2)/16=1875Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps
10(0+0+0+0+0+0+4+4+4+4+4+4+2+2+2+2)/16=2Mbpsaverage-rate > burst-threshold → 不允许突发0Mbps
11(0+0+0+0+0+4+4+4+4+4+4+2+2+2+2+0)/16=2Mbpsaverage-rate > burst-threshold → 不允许突发0Mbps
12(0+0+0+0+4+4+4+4+4+4+2+2+2+2+0+0)/16=2Mbpsaverage-rate > burst-threshold → 不允许突发0Mbps
13(0+0+0+4+4+4+4+4+4+2+2+2+2+0+0+0)/16=2Mbpsaverage-rate > burst-threshold → 不允许突发0Mbps
14(0+0+4+4+4+4+4+4+2+2+2+2+0+0+0+0)/16=2Mbpsaverage-rate > burst-threshold → 不允许突发0Mbps
15(0+4+4+4+4+4+4+2+2+2+2+0+0+0+0+0)/16=2Mbpsaverage-rate > burst-threshold → 不允许突发0Mbps
16(4+4+4+4+4+4+2+2+2+2+0+0+0+0+0+0)/16=2Mbpsaverage-rate > burst-threshold → 不允许突发0Mbps
17(4+4+4+4+4+2+2+2+2+0+0+0+0+0+0+0)/16=1750Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps
18(4+4+4+4+2+2+2+2+0+0+0+0+0+0+0+2)/16=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps
19(4+4+4+2+2+2+2+0+0+0+0+0+0+0+2+2)/16=1375Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
20(4+4+2+2+2+2+0+0+0+0+0+0+0+2+2+4)/16=1375Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
21(4+2+2+2+2+0+0+0+0+0+0+0+2+2+4+4)/16=1375Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
22(2+2+2+2+0+0+0+0+0+0+0+2+2+4+4+4)/16=1375Kbpsaverage-rate < burst-threshold → 允许突发4Mbps
23(2+2+2+0+0+0+0+0+0+0+2+2+4+4+4+4)/16=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps
24(2+2+0+0+0+0+0+0+0+2+2+4+4+4+4+2)/16=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps
25(2+0+0+0+0+0+0+0+2+2+4+4+4+4+2+2)/16=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps
26(0+0+0+0+0+0+0+2+2+4+4+4+4+2+2+2)/16=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps
27(0+0+0+0+0+0+2+2+4+4+4+4+2+2+2+2)/16=1625Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps
28(0+0+0+0+0+2+2+4+4+4+4+2+2+2+2+2)/16=1750Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps
29(0+0+0+0+2+2+4+4+4+4+2+2+2+2+2+2)/16=1875Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps
30(0+0+0+2+2+4+4+4+4+2+2+2+2+2+2+0)/16=1875Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps
31(0+0+2+2+4+4+4+4+2+2+2+2+2+2+0+0)/16=1875Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps

Burst-time=8s

如果我们把 burst-time 减小到 8 秒——可以看到在这种情况下,突发只出现在下载开始时。平均速率每 1/16 个 burst time 计算一次,因此在本例中为每 0.5 秒一次。

时间average-rateburstactual-rate
0(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/8=0Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
0.5(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2)/8=250Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
1(0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+2)/8=500Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
1.5(0+0+0+0+0+0+0+0+0+0+0+0+0+2+2+2)/8=750Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
2(0+0+0+0+0+0+0+0+0+0+0+0+2+2+2+2)/8=1000Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
2.5(0+0+0+0+0+0+0+0+0+0+0+2+2+2+2+2)/8=1250Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
3(0+0+0+0+0+0+0+0+0+0+2+2+2+2+2+2)/8=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
3.5(0+0+0+0+0+0+0+0+0+2+2+2+2+2+2+1)/8=1625Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
4(0+0+0+0+0+0+0+0+2+2+2+2+2+2+1+1)/8=1750Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
4.5(0+0+0+0+0+0+0+2+2+2+2+2+2+1+1+1)/8=1875Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
5(0+0+0+0+0+0+2+2+2+2+2+2+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
5.5(0+0+0+0+0+2+2+2+2+2+2+1+1+1+1+1)/8=2125Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
6(0+0+0+0+2+2+2+2+2+2+1+1+1+1+1+1)/8=2250Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
6.5(0+0+0+2+2+2+2+2+2+1+1+1+1+1+1+1)/8=2375Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
7(0+0+2+2+2+2+2+2+1+1+1+1+1+1+1+1)/8=2500Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
7.5(0+2+2+2+2+2+2+1+1+1+1+1+1+1+1+1)/8=2625Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
8(2+2+2+2+2+2+1+1+1+1+1+1+1+1+1+1)/8=2750Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
8.5(2+2+2+2+2+1+1+1+1+1+1+1+1+1+1+1)/8=2625Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
9(2+2+2+2+1+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
9.5(2+2+2+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2375Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
10(2+2+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2250Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
10.5(2+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2125Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
11(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
11.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
12(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
12.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
13(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps(每 0.5s 0Mb)
13.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+0)/8=1875Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps(每 0.5s 0Mb)
14(1+1+1+1+1+1+1+1+1+1+1+1+1+1+0+0)/8=1750Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps(每 0.5s 0Mb)
14.5(1+1+1+1+1+1+1+1+1+1+1+1+1+0+0+0)/8=1625Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps(每 0.5s 0Mb)
15(1+1+1+1+1+1+1+1+1+1+1+1+0+0+0+0)/8=1500Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps(每 0.5s 0Mb)
15.5(1+1+1+1+1+1+1+1+1+1+1+0+0+0+0+0)/8=1375Kbpsaverage-rate < burst-threshold → 允许突发0Mbps(每 0.5s 0Mb)
16(1+1+1+1+1+1+1+1+1+1+0+0+0+0+0+0)/8=1250Kbpsaverage-rate < burst-threshold → 允许突发0Mbps(每 0.5s 0Mb)
16.5(1+1+1+1+1+1+1+1+1+0+0+0+0+0+0+0)/8=1125Kbpsaverage-rate < burst-threshold → 允许突发0Mbps(每 0.5s 0Mb)
17(1+1+1+1+1+1+1+1+0+0+0+0+0+0+0+0)/8=1000Kbpsaverage-rate < burst-threshold → 允许突发2Mbps(每 0.5s 1Mb)
17.5(1+1+1+1+1+1+1+0+0+0+0+0+0+0+0+1)/8=1000Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
18(1+1+1+1+1+1+0+0+0+0+0+0+0+0+1+2)/8=1125Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
18.5(1+1+1+1+1+0+0+0+0+0+0+0+0+1+2+2)/8=1250Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
19(1+1+1+1+0+0+0+0+0+0+0+0+1+2+2+2)/8=1375Kbpsaverage-rate < burst-threshold → 允许突发4Mbps(每 0.5s 2Mb)
19.5(1+1+1+0+0+0+0+0+0+0+0+1+2+2+2+2)/8=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
20(1+1+0+0+0+0+0+0+0+0+1+2+2+2+2+1)/8=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
20.5(1+0+0+0+0+0+0+0+0+1+2+2+2+2+1+1)/8=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
21(0+0+0+0+0+0+0+0+1+2+2+2+2+1+1+1)/8=1500Kbpsaverage-rate = burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
21.5(0+0+0+0+0+0+0+1+2+2+2+2+1+1+1+1)/8=1625Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
22(0+0+0+0+0+0+1+2+2+2+2+1+1+1+1+1)/8=1750Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
22.5(0+0+0+0+0+1+2+2+2+2+1+1+1+1+1+1)/8=1875Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
23(0+0+0+0+1+2+2+2+2+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
23.5(0+0+0+1+2+2+2+2+1+1+1+1+1+1+1+1)/8=2125Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
24(0+0+1+2+2+2+2+1+1+1+1+1+1+1+1+1)/8=2250Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
24.5(0+1+2+2+2+2+1+1+1+1+1+1+1+1+1+1)/8=2375Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
25(1+2+2+2+2+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
25.5(2+2+2+2+1+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
26(2+2+2+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2375Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
26.5(2+2+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2250Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
27(2+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2125Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
27.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
28(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
28.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
29(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
29.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
30(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发2Mbps(每 0.5s 1Mb)
30.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps(每 0.5s 0Mb)
31(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+0)/8=1875Kbpsaverage-rate > burst-threshold → 不允许突发0Mbps(每 0.5s 0Mb)