Manual:Queues - Burst

From MikroTik Wiki
Jump to navigation Jump to search

Applies to RouterOS: v2.9 and newer

Theory

Burst is a feature that allows to satisfy queue requirement for additional bandwidth even if required rate is bigger that MIR (max-limit) for a limited period of time.

Burst can occur only if average-rate of the queue for the last burst-time seconds is smaller that burst-threshold. Burst will stop if average-rate of the queue for the last burst-time seconds is bigger or equal to burst-threshold

Burst mechanism is simple - if burst is allowed max-limit value is replaced by burst-limit value. When burst is disallowed max-limit value remains unchanged.


  1. burst-limit (NUMBER) : maximal upload/download data rate which can be reached while the burst is allowed
  2. burst-time (TIME) : period of time, in seconds, over which the average data rate is calculated. (This is NOT the time of actual burst)
  3. burst-threshold (NUMBER) : this is value of burst on/off switch
  4. average-rate (read-only) : Every 1/16 part of the burst-time, the router calculates the average data rate of each class over the last burst-time seconds
  5. actual-rate (read-only) : actual traffic transfer rate of the queue


Example

Values: limit-at=1M , max-limit=2M , burst-threshold=1500k , burst-limit=4M

Client will try to download two 4MB (32Mb) blocks of data, first download will start at zero seconds, second download will start at 17th second. Traffic was unused for last minute.

Burst-time=16s

As we can see as soon as client requested bandwidth it was able to get 4Mpbs burst for 6 seconds. This is longest possible burst with given values (longest-burst-time = burst-threshold * burst-time / burst-limit). As soon as burst runs out rest of the data will be downloaded with 2Mbps. This way block of data was downloaded in 9 seconds - without burst it would take 16 seconds. Burst have 7 seconds to recharge before next download will start.

Note that burst is still disallowed when download started and it kicks in only afterwards - in the middle of download. So with this example we proved that burst may happen in the middle of download. Burst was ~4 seconds long and second block of was downloaded 4 seconds faster then without burst.

Average rate is calculated every 1/16 of burst time, so in this case 1s

Timeaverage-rateburstactual-rate
0(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/16=0Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps
1(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4)/16=250Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps
2 (0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+4)/16=500Kbps average-rate < burst-threshold → Burst is allowed4Mbps
3 (0+0+0+0+0+0+0+0+0+0+0+0+0+4+4+4)/16=750Kbps average-rate < burst-threshold → Burst is allowed4Mbps
4 (0+0+0+0+0+0+0+0+0+0+0+0+4+4+4+4)/16=1000Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps
5 (0+0+0+0+0+0+0+0+0+0+0+4+4+4+4+4)/16=1250Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps
6 (0+0+0+0+0+0+0+0+0+0+4+4+4+4+4+4)/16=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps
7 (0+0+0+0+0+0+0+0+0+4+4+4+4+4+4+2)/16=1625Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps
8 (0+0+0+0+0+0+0+0+4+4+4+4+4+4+2+2)/16=1750Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps
9 (0+0+0+0+0+0+0+4+4+4+4+4+4+2+2+2)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps
10(0+0+0+0+0+0+4+4+4+4+4+4+2+2+2+2)/16=2Mbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
11(0+0+0+0+0+4+4+4+4+4+4+2+2+2+2+0)/16=2Mbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
12(0+0+0+0+4+4+4+4+4+4+2+2+2+2+0+0)/16=2Mbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
13(0+0+0+4+4+4+4+4+4+2+2+2+2+0+0+0)/16=2Mbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
14(0+0+4+4+4+4+4+4+2+2+2+2+0+0+0+0)/16=2Mbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
15(0+4+4+4+4+4+4+2+2+2+2+0+0+0+0+0)/16=2Mbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
16(4+4+4+4+4+4+2+2+2+2+0+0+0+0+0+0)/16=2Mbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
17(4+4+4+4+4+2+2+2+2+0+0+0+0+0+0+0)/16=1750Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps
18(4+4+4+4+2+2+2+2+0+0+0+0+0+0+0+2)/16=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps
19(4+4+4+2+2+2+2+0+0+0+0+0+0+0+2+2)/16=1375Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps
20(4+4+2+2+2+2+0+0+0+0+0+0+0+2+2+4)/16=1375Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps
21(4+2+2+2+2+0+0+0+0+0+0+0+2+2+4+4)/16=1375Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps
22(2+2+2+2+0+0+0+0+0+0+0+2+2+4+4+4)/16=1375Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps
23(2+2+2+0+0+0+0+0+0+0+2+2+4+4+4+4)/16=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps
24(2+2+0+0+0+0+0+0+0+2+2+4+4+4+4+2)/16=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps
25(2+0+0+0+0+0+0+0+2+2+4+4+4+4+2+2)/16=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps
26(0+0+0+0+0+0+0+2+2+4+4+4+4+2+2+2)/16=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps
27(0+0+0+0+0+0+2+2+4+4+4+4+2+2+2+2)/16=1625Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps
28(0+0+0+0+0+2+2+4+4+4+4+2+2+2+2+2)/16=1750Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps
29(0+0+0+0+2+2+4+4+4+4+2+2+2+2+2+2)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
30(0+0+0+2+2+4+4+4+4+2+2+2+2+2+2+0)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
31(0+0+2+2+4+4+4+4+2+2+2+2+2+2+0+0)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps

Burst-time=8s

If we decrease burst-time to 8 seconds - we are able to see that in this case bursts are only at the beginning of downloads


Average rate is calculated every 1/16th of burst time, so in this case every 0.5 seconds.

Timeaverage-rateburstactual-rate
0.0(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/8=0Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
0.5(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2)/8=250Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
1.0(0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+2)/8=500Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
1.5(0+0+0+0+0+0+0+0+0+0+0+0+0+2+2+2)/8=750Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
2.0(0+0+0+0+0+0+0+0+0+0+0+0+2+2+2+2)/8=1000Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
2.5(0+0+0+0+0+0+0+0+0+0+0+2+2+2+2+2)/8=1250Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
3.0(0+0+0+0+0+0+0+0+0+0+2+2+2+2+2+2)/8=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
3.5(0+0+0+0+0+0+0+0+0+2+2+2+2+2+2+1)/8=1625Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
4.0(0+0+0+0+0+0+0+0+2+2+2+2+2+2+1+1)/8=1750Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
4.5(0+0+0+0+0+0+0+2+2+2+2+2+2+1+1+1)/8=1875Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
5.0(0+0+0+0+0+0+2+2+2+2+2+2+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
5.5(0+0+0+0+0+2+2+2+2+2+2+1+1+1+1+1)/8=2125Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
6.0(0+0+0+0+2+2+2+2+2+2+1+1+1+1+1+1)/8=2250Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
6.5(0+0+0+2+2+2+2+2+2+1+1+1+1+1+1+1)/8=2375Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
7.0(0+0+2+2+2+2+2+2+1+1+1+1+1+1+1+1)/8=2500Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
7.5(0+2+2+2+2+2+2+1+1+1+1+1+1+1+1+1)/8=2625Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
8.0(2+2+2+2+2+2+1+1+1+1+1+1+1+1+1+1)/8=2750Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
8.5(2+2+2+2+2+1+1+1+1+1+1+1+1+1+1+1)/8=2625Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
9.0(2+2+2+2+1+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
9.5(2+2+2+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2375Kbpsaverage-rate > burst-threshold → Burst not allowed 2Mbps (1Mb per 0,5sek)
10.0(2+2+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2250Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
10.5(2+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2125Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
11.0(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
11.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
12.0(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
12.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
13.0(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps (0Mb per 0,5sek)
13.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+0)/8=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps (0Mb per 0,5sek)
14.0(1+1+1+1+1+1+1+1+1+1+1+1+1+1+0+0)/8=1750Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps (0Mb per 0,5sek)
14.5(1+1+1+1+1+1+1+1+1+1+1+1+1+0+0+0)/8=1625Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps (0Mb per 0,5sek)
15.0(1+1+1+1+1+1+1+1+1+1+1+1+0+0+0+0)/8=1500Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps (0Mb per 0,5sek)
15.5(1+1+1+1+1+1+1+1+1+1+1+0+0+0+0+0)/8=1375Kbpsaverage-rate < burst-threshold → Burst is allowed0Mbps (0Mb per 0,5sek)
16.0(1+1+1+1+1+1+1+1+1+1+0+0+0+0+0+0)/8=1250Kbpsaverage-rate < burst-threshold → Burst is allowed0Mbps (0Mb per 0,5sek)
16.5(1+1+1+1+1+1+1+1+1+0+0+0+0+0+0+0)/8=1125Kbpsaverage-rate < burst-threshold → Burst is allowed0Mbps (0Mb per 0,5sek)
17.0(1+1+1+1+1+1+1+1+0+0+0+0+0+0+0+0)/8=1000Kbpsaverage-rate < burst-threshold → Burst is allowed2Mbps (1Mb per 0,5sek)
17.5(1+1+1+1+1+1+1+0+0+0+0+0+0+0+0+1)/8=1000Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
18.0(1+1+1+1+1+1+0+0+0+0+0+0+0+0+1+2)/8=1125Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
18.5(1+1+1+1+1+0+0+0+0+0+0+0+0+1+2+2)/8=1250Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
19.0(1+1+1+1+0+0+0+0+0+0+0+0+1+2+2+2)/8=1375Kbpsaverage-rate < burst-threshold → Burst is allowed4Mbps (2Mb per 0,5sek)
19.5(1+1+1+0+0+0+0+0+0+0+0+1+2+2+2+2)/8=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
20.0(1+1+0+0+0+0+0+0+0+0+1+2+2+2+2+1)/8=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
20.5(1+0+0+0+0+0+0+0+0+1+2+2+2+2+1+1)/8=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
21.0(0+0+0+0+0+0+0+0+1+2+2+2+2+1+1+1)/8=1500Kbpsaverage-rate = burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
21.5(0+0+0+0+0+0+0+1+2+2+2+2+1+1+1+1)/8=1625Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
22.0(0+0+0+0+0+0+1+2+2+2+2+1+1+1+1+1)/8=1750Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
22.5(0+0+0+0+0+1+2+2+2+2+1+1+1+1+1+1)/8=1875Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
23.0(0+0+0+0+1+2+2+2+2+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
23.5(0+0+0+1+2+2+2+2+1+1+1+1+1+1+1+1)/8=2125Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
24.0(0+0+1+2+2+2+2+1+1+1+1+1+1+1+1+1)/8=2250Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
24.5(0+1+2+2+2+2+1+1+1+1+1+1+1+1+1+1)/8=2375Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
25.0(1+2+2+2+2+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
25.5(2+2+2+2+1+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
26.0(2+2+2+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2375Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
26.5(2+2+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2250Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
27.0(2+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2125Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
27.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
28.0(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
28.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
29.0(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
29.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
30.0(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps (1Mb per 0,5sek)
30.5(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps (0Mb per 0,5sek)
31.0(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+0)/8=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps (0Mb per 0,5sek)