Manual:Queues - Burst

From MikroTik Wiki
Revision as of 15:57, 15 October 2008 by Eep (talk | contribs) (made a table)
Jump to navigation Jump to search

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 short 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 must 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) : basically 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) files, 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 file will be downloaded with 2Mbps. This way file 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 afterward - 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 file 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=1750Kbpsaverage-rate > burst-threshold → Burst not allowed2Mbps
10(0+0+0+0+0+0+4+4+4+4+4+4+2+2+2+2)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
11(0+0+0+0+0+4+4+4+4+4+4+2+2+2+2+0)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
12(0+0+0+0+4+4+4+4+4+4+2+2+2+2+0+0)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
13(0+0+0+4+4+4+4+4+4+2+2+2+2+0+0+0)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
14(0+0+4+4+4+4+4+4+2+2+2+2+0+0+0+0)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
15(0+4+4+4+4+4+4+2+2+2+2+0+0+0+0+0)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
16(4+4+4+4+4+4+2+2+2+2+0+0+0+0+0+0)/16=1875Kbpsaverage-rate > burst-threshold → Burst not allowed0Mbps
17(4+4+4+4+4+2+2+2+2+0+0+0+0+0+0+0)/16=1625Kbpsaverage-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/16 of burst time, so in this case 0,5s

Zero second - average-rate=(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/8=0Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
0,5 second - average-rate=(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2)/8=250Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
1,0 second - average-rate=(0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+2)/8=500Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
1,5 second - average-rate=(0+0+0+0+0+0+0+0+0+0+0+0+0+2+2+2)/8=750Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
2,0 second - average-rate=(0+0+0+0+0+0+0+0+0+0+0+0+2+2+2+2)/8=1000Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
2,5 second - average-rate=(0+0+0+0+0+0+0+0+0+0+0+2+2+2+2+2)/8=1250Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
3,0 second - average-rate=(0+0+0+0+0+0+0+0+0+0+2+2+2+2+2+2)/8=1500Kbps, average-rate = burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
3,5 second - average-rate=(0+0+0+0+0+0+0+0+0+2+2+2+2+2+2+1)/8=1625Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
4,0 second - average-rate=(0+0+0+0+0+0+0+0+2+2+2+2+2+2+1+1)/8=1750Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
4,5 second - average-rate=(0+0+0+0+0+0+0+2+2+2+2+2+2+1+1+1)/8=1875Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
5,0 second - average-rate=(0+0+0+0+0+0+2+2+2+2+2+2+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
5,5 second - average-rate=(0+0+0+0+0+2+2+2+2+2+2+1+1+1+1+1)/8=2125Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
6,0 second - average-rate=(0+0+0+0+2+2+2+2+2+2+1+1+1+1+1+1)/8=2250Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
6,5 second - average-rate=(0+0+0+2+2+2+2+2+2+1+1+1+1+1+1+1)/8=2375Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
7,0 second - average-rate=(0+0+2+2+2+2+2+2+1+1+1+1+1+1+1+1)/8=2500Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
7,5 second - average-rate=(0+2+2+2+2+2+2+1+1+1+1+1+1+1+1+1)/8=2625Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
8,0 second - average-rate=(2+2+2+2+2+2+1+1+1+1+1+1+1+1+1+1)/8=2750Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
8,5 second - average-rate=(2+2+2+2+2+1+1+1+1+1+1+1+1+1+1+1)/8=2625Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
9,0 second - average-rate=(2+2+2+2+1+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
9,5 second - average-rate=(2+2+2+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2375Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
10,0 second - average-rate=(2+2+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2250Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
10,5 second - average-rate=(2+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2125Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
11,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
11,5 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
12,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
12,5 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
13,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)
13,5 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+0)/8=1875Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)
14,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+0+0)/8=1750Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)
14,5 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+0+0+0)/8=1625Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)
15,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+0+0+0+0)/8=1500Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)
15,5 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+0+0+0+0+0)/8=1375Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)
16,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+0+0+0+0+0+0)/8=1250Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)
16,5 second - average-rate=(1+1+1+1+1+1+1+1+1+0+0+0+0+0+0+0)/8=1125Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)
17,0 second - average-rate=(1+1+1+1+1+1+1+1+0+0+0+0+0+0+0+0)/8=1000Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
17,5 second - average-rate=(1+1+1+1+1+1+1+0+0+0+0+0+0+0+0+1)/8=1000Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
18,0 second - average-rate=(1+1+1+1+1+1+0+0+0+0+0+0+0+0+1+2)/8=1125Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
18,5 second - average-rate=(1+1+1+1+1+0+0+0+0+0+0+0+0+1+2+2)/8=1250Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
19,0 second - average-rate=(1+1+1+1+0+0+0+0+0+0+0+0+1+2+2+2)/8=1375Kbps, average-rate < burst-threshold -> Burst is allowed -> Actual-rate=4Mbps (2Mb per 0,5sek)
19,5 second - average-rate=(1+1+1+0+0+0+0+0+0+0+0+1+2+2+2+2)/8=1500Kbps, average-rate = burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
20,0 second - average-rate=(1+1+0+0+0+0+0+0+0+0+1+2+2+2+2+1)/8=1500Kbps, average-rate = burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
20,5 second - average-rate=(1+0+0+0+0+0+0+0+0+1+2+2+2+2+1+1)/8=1500Kbps, average-rate = burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
21,0 second - average-rate=(0+0+0+0+0+0+0+0+1+2+2+2+2+1+1+1)/8=1500Kbps, average-rate = burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
21,5 second - average-rate=(0+0+0+0+0+0+0+1+2+2+2+2+1+1+1+1)/8=1625Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
22,0 second - average-rate=(0+0+0+0+0+0+1+2+2+2+2+1+1+1+1+1)/8=1750Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
22,5 second - average-rate=(0+0+0+0+0+1+2+2+2+2+1+1+1+1+1+1)/8=1875Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
23,0 second - average-rate=(0+0+0+0+1+2+2+2+2+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
23,5 second - average-rate=(0+0+0+1+2+2+2+2+1+1+1+1+1+1+1+1)/8=2125Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
24,0 second - average-rate=(0+0+1+2+2+2+2+1+1+1+1+1+1+1+1+1)/8=2250Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
24,5 second - average-rate=(0+1+2+2+2+2+1+1+1+1+1+1+1+1+1+1)/8=2375Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
25,0 second - average-rate=(1+2+2+2+2+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
25,5 second - average-rate=(2+2+2+2+1+1+1+1+1+1+1+1+1+1+1+1)/8=2500Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
26,0 second - average-rate=(2+2+2+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2375Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
26,5 second - average-rate=(2+2+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2250Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
27,0 second - average-rate=(2+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2125Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
27,5 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
28,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
28,5 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
29,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
29,5 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
30,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=2Mbps (1Mb per 0,5sek)
30,5 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)/8=2000Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)
31,0 second - average-rate=(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+0)/8=1875Kbps, average-rate > burst-threshold -> Burst not allowed -> Actual-rate=0Mbps (0Mb per 0,5sek)