Manual:Queues - Burst

From MikroTik Wiki
Revision as of 13:58, 15 October 2008 by Eep (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

Burst time.16.part1.JPG Burst time.16.part2.JPG

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

Burst time.8.part1.JPG Burst time.8.part2.JPG

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)