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 值保持不变。
- burst-limit(NUMBER):允许突发时可达到的最大 上传/下载 数据速率。
- burst-time(TIME):计算平均数据速率所基于的时间段,以秒为单位。(这不是实际突发的持续时间)。
- burst-threshold(NUMBER):这是突发开/关的切换值。
- average-rate(只读):每经过 burst-time 的 1/16,路由器就会计算每个类在最近 burst-time 秒内的平均数据速率。
- 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-rate | burst | actual-rate |
|---|---|---|---|
| 0 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/16=0Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 1 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4)/16=250Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 2 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+4)/16=500Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 3 | (0+0+0+0+0+0+0+0+0+0+0+0+0+4+4+4)/16=750Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 4 | (0+0+0+0+0+0+0+0+0+0+0+0+4+4+4+4)/16=1000Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 5 | (0+0+0+0+0+0+0+0+0+0+0+4+4+4+4+4)/16=1250Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 6 | (0+0+0+0+0+0+0+0+0+0+4+4+4+4+4+4)/16=1500Kbps | average-rate = burst-threshold → 不允许突发 | 2Mbps |
| 7 | (0+0+0+0+0+0+0+0+0+4+4+4+4+4+4+2)/16=1625Kbps | average-rate > burst-threshold → 不允许突发 | 2Mbps |
| 8 | (0+0+0+0+0+0+0+0+4+4+4+4+4+4+2+2)/16=1750Kbps | average-rate > burst-threshold → 不允许突发 | 2Mbps |
| 9 | (0+0+0+0+0+0+0+4+4+4+4+4+4+2+2+2)/16=1875Kbps | average-rate > burst-threshold → 不允许突发 | 2Mbps |
| 10 | (0+0+0+0+0+0+4+4+4+4+4+4+2+2+2+2)/16=2Mbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
| 11 | (0+0+0+0+0+4+4+4+4+4+4+2+2+2+2+0)/16=2Mbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
| 12 | (0+0+0+0+4+4+4+4+4+4+2+2+2+2+0+0)/16=2Mbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
| 13 | (0+0+0+4+4+4+4+4+4+2+2+2+2+0+0+0)/16=2Mbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
| 14 | (0+0+4+4+4+4+4+4+2+2+2+2+0+0+0+0)/16=2Mbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
| 15 | (0+4+4+4+4+4+4+2+2+2+2+0+0+0+0+0)/16=2Mbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
| 16 | (4+4+4+4+4+4+2+2+2+2+0+0+0+0+0+0)/16=2Mbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
| 17 | (4+4+4+4+4+2+2+2+2+0+0+0+0+0+0+0)/16=1750Kbps | average-rate > burst-threshold → 不允许突发 | 2Mbps |
| 18 | (4+4+4+4+2+2+2+2+0+0+0+0+0+0+0+2)/16=1500Kbps | average-rate = burst-threshold → 不允许突发 | 2Mbps |
| 19 | (4+4+4+2+2+2+2+0+0+0+0+0+0+0+2+2)/16=1375Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 20 | (4+4+2+2+2+2+0+0+0+0+0+0+0+2+2+4)/16=1375Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 21 | (4+2+2+2+2+0+0+0+0+0+0+0+2+2+4+4)/16=1375Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 22 | (2+2+2+2+0+0+0+0+0+0+0+2+2+4+4+4)/16=1375Kbps | average-rate < burst-threshold → 允许突发 | 4Mbps |
| 23 | (2+2+2+0+0+0+0+0+0+0+2+2+4+4+4+4)/16=1500Kbps | average-rate = burst-threshold → 不允许突发 | 2Mbps |
| 24 | (2+2+0+0+0+0+0+0+0+2+2+4+4+4+4+2)/16=1500Kbps | average-rate = burst-threshold → 不允许突发 | 2Mbps |
| 25 | (2+0+0+0+0+0+0+0+2+2+4+4+4+4+2+2)/16=1500Kbps | average-rate = burst-threshold → 不允许突发 | 2Mbps |
| 26 | (0+0+0+0+0+0+0+2+2+4+4+4+4+2+2+2)/16=1500Kbps | average-rate = burst-threshold → 不允许突发 | 2Mbps |
| 27 | (0+0+0+0+0+0+2+2+4+4+4+4+2+2+2+2)/16=1625Kbps | average-rate > burst-threshold → 不允许突发 | 2Mbps |
| 28 | (0+0+0+0+0+2+2+4+4+4+4+2+2+2+2+2)/16=1750Kbps | average-rate > burst-threshold → 不允许突发 | 2Mbps |
| 29 | (0+0+0+0+2+2+4+4+4+4+2+2+2+2+2+2)/16=1875Kbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
| 30 | (0+0+0+2+2+4+4+4+4+2+2+2+2+2+2+0)/16=1875Kbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
| 31 | (0+0+2+2+4+4+4+4+2+2+2+2+2+2+0+0)/16=1875Kbps | average-rate > burst-threshold → 不允许突发 | 0Mbps |
Burst-time=8s


如果我们把 burst-time 减小到 8 秒——可以看到在这种情况下,突发只出现在下载开始时。平均速率每 1/16 个 burst time 计算一次,因此在本例中为每 0.5 秒一次。
| 时间 | average-rate | burst | actual-rate |
|---|---|---|---|
| 0 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/8=0Kbps | average-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=250Kbps | average-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=500Kbps | average-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=750Kbps | average-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=1000Kbps | average-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=1250Kbps | average-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=1500Kbps | average-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=1625Kbps | average-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=1750Kbps | average-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=1875Kbps | average-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=2000Kbps | average-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=2125Kbps | average-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=2250Kbps | average-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=2375Kbps | average-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=2500Kbps | average-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=2625Kbps | average-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=2750Kbps | average-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=2625Kbps | average-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=2500Kbps | average-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=2375Kbps | average-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=2250Kbps | average-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=2125Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=1875Kbps | average-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=1750Kbps | average-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=1625Kbps | average-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=1500Kbps | average-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=1375Kbps | average-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=1250Kbps | average-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=1125Kbps | average-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=1000Kbps | average-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=1000Kbps | average-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=1125Kbps | average-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=1250Kbps | average-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=1375Kbps | average-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=1500Kbps | average-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=1500Kbps | average-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=1500Kbps | average-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=1500Kbps | average-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=1625Kbps | average-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=1750Kbps | average-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=1875Kbps | average-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=2000Kbps | average-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=2125Kbps | average-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=2250Kbps | average-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=2375Kbps | average-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=2500Kbps | average-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=2500Kbps | average-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=2375Kbps | average-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=2250Kbps | average-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=2125Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=2000Kbps | average-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=1875Kbps | average-rate > burst-threshold → 不允许突发 | 0Mbps(每 0.5s 0Mb) |