Manual:Queues - Burst: Difference between revisions

From MikroTik Wiki
Jump to navigation Jump to search
Megis (talk | contribs)
No edit summary
 
(30 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Versions|v2.9 and newer}}
__TOC__
__TOC__


==Theory==
==Theory==
To understand burst it is necessary to be aware of 5 concepts:
 
# '''burst-limit''' (NUMBER) : maximal upload/download data rate which can be reached while the burst is active
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.
 
 
# '''burst-limit''' (NUMBER) : maximal upload/download data rate which can be reached while the burst is allowed
# '''burst-time''' (TIME) : period of time, in seconds, over which the average data rate is calculated. (This is NOT the time of actual burst)
# '''burst-time''' (TIME) : period of time, in seconds, over which the average data rate is calculated. (This is NOT the time of actual burst)
# '''burst-threshold''' (NUMBER) : when average data rate is below this value - burst is allowed, as soon as average data rate reach this value - burst is denied. (basically this is burst on/off switch). For optimal burst behavior this value should above limit-at value and below max-limit value
# '''burst-threshold''' (NUMBER) : this is value of burst on/off switch  
# '''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.
# '''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
# '''actual-rate''' (read-only) : actual traffic transfer rate of the queue
# '''actual-rate''' (read-only) : actual traffic transfer rate of the queue


To simplify calculations for examples we will use limit-at=1M, max-limit=2M, burst-threshold=1500k, burst-limit=4M


==Example==


==Example Burst-time=8s==
Values: '''limit-at=1M''' , '''max-limit=2M''' , '''burst-threshold=1500k''' , '''burst-limit=4M'''


<table class="styled_table">
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.
<tr>
 
  <th width="5">Seconds</th>
===Burst-time=16s===
  <th width="20">Actual Rate</th>
 
  <th width="20">Average Rate</th>
[[Image:Burst time.16.part1.JPG]]
  <th width="5">Allow Burst</th>
[[Image:Burst time.16.part2.JPG]]
</tr>
<tr>
  <td>0</td>
  <td>0Mbps</td>
  <td>(0+0+0+0+0+0+0+0)/8=0Mbps</td>
  <td>Yes</td>
</tr>


</table>
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


<table class="styled_table">
<tr><th>Time<th>average-rate<th>burst<th>actual-rate</tr>
<tr><td>0<td>(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0)/16=0Kbps<td>average-rate < burst-threshold &rarr; Burst is allowed<td>4Mbps</tr>
<tr><td>1<td>(0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4)/16=250Kbps<td>average-rate < burst-threshold &rarr; Burst is allowed<td>4Mbps</tr>
<tr><td>2 <td>(0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+4)/16=500Kbps <td>average-rate < burst-threshold &rarr; Burst is allowed<td>4Mbps</tr>
<tr><td>3 <td>(0+0+0+0+0+0+0+0+0+0+0+0+0+4+4+4)/16=750Kbps <td>average-rate < burst-threshold &rarr; Burst is allowed<td>4Mbps</tr>
<tr><td>4 <td>(0+0+0+0+0+0+0+0+0+0+0+0+4+4+4+4)/16=1000Kbps<td>average-rate < burst-threshold &rarr; Burst is allowed<td>4Mbps</tr>
<tr><td>5 <td>(0+0+0+0+0+0+0+0+0+0+0+4+4+4+4+4)/16=1250Kbps<td>average-rate < burst-threshold &rarr; Burst is allowed<td>4Mbps</tr>
<tr><td>6 <td>(0+0+0+0+0+0+0+0+0+0+4+4+4+4+4+4)/16=1500Kbps<td>average-rate = burst-threshold &rarr; Burst '''not''' allowed<td>'''2Mbps'''</tr>
<tr><td>7 <td>(0+0+0+0+0+0+0+0+0+4+4+4+4+4+4+2)/16=1625Kbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>8 <td>(0+0+0+0+0+0+0+0+4+4+4+4+4+4+2+2)/16=1750Kbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>9 <td>(0+0+0+0+0+0+0+4+4+4+4+4+4+2+2+2)/16=1875Kbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>10<td>(0+0+0+0+0+0+4+4+4+4+4+4+2+2+2+2)/16=2Mbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>'''0Mbps'''</tr>
<tr><td>11<td>(0+0+0+0+0+4+4+4+4+4+4+2+2+2+2+0)/16=2Mbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>0Mbps</tr>
<tr><td>12<td>(0+0+0+0+4+4+4+4+4+4+2+2+2+2+0+0)/16=2Mbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>0Mbps</tr>
<tr><td>13<td>(0+0+0+4+4+4+4+4+4+2+2+2+2+0+0+0)/16=2Mbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>0Mbps</tr>
<tr><td>14<td>(0+0+4+4+4+4+4+4+2+2+2+2+0+0+0+0)/16=2Mbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>0Mbps</tr>
<tr><td>15<td>(0+4+4+4+4+4+4+2+2+2+2+0+0+0+0+0)/16=2Mbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>0Mbps</tr>
<tr><td>16<td>(4+4+4+4+4+4+2+2+2+2+0+0+0+0+0+0)/16=2Mbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>0Mbps</tr>
<tr><td>17<td>(4+4+4+4+4+2+2+2+2+0+0+0+0+0+0+0)/16=1750Kbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>18<td>(4+4+4+4+2+2+2+2+0+0+0+0+0+0+0+2)/16=1500Kbps<td>average-rate = burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>19<td>(4+4+4+2+2+2+2+0+0+0+0+0+0+0+2+2)/16=1375Kbps<td>average-rate < burst-threshold &rarr; Burst '''is''' allowed<td>4Mbps</tr>
<tr><td>20<td>(4+4+2+2+2+2+0+0+0+0+0+0+0+2+2+4)/16=1375Kbps<td>average-rate < burst-threshold &rarr; Burst is allowed<td>4Mbps</tr>
<tr><td>21<td>(4+2+2+2+2+0+0+0+0+0+0+0+2+2+4+4)/16=1375Kbps<td>average-rate < burst-threshold &rarr; Burst is allowed<td>4Mbps</tr>
<tr><td>22<td>(2+2+2+2+0+0+0+0+0+0+0+2+2+4+4+4)/16=1375Kbps<td>average-rate < burst-threshold &rarr; Burst is allowed<td>4Mbps</tr>
<tr><td>23<td>(2+2+2+0+0+0+0+0+0+0+2+2+4+4+4+4)/16=1500Kbps<td>average-rate = burst-threshold &rarr; Burst '''not''' allowed<td>2Mbps</tr>
<tr><td>24<td>(2+2+0+0+0+0+0+0+0+2+2+4+4+4+4+2)/16=1500Kbps<td>average-rate = burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>25<td>(2+0+0+0+0+0+0+0+2+2+4+4+4+4+2+2)/16=1500Kbps<td>average-rate = burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>26<td>(0+0+0+0+0+0+0+2+2+4+4+4+4+2+2+2)/16=1500Kbps<td>average-rate = burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>27<td>(0+0+0+0+0+0+2+2+4+4+4+4+2+2+2+2)/16=1625Kbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>28<td>(0+0+0+0+0+2+2+4+4+4+4+2+2+2+2+2)/16=1750Kbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>2Mbps</tr>
<tr><td>29<td>(0+0+0+0+2+2+4+4+4+4+2+2+2+2+2+2)/16=1875Kbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>0Mbps</tr>
<tr><td>30<td>(0+0+0+2+2+4+4+4+4+2+2+2+2+2+2+0)/16=1875Kbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>0Mbps</tr>
<tr><td>31<td>(0+0+2+2+4+4+4+4+2+2+2+2+2+2+0+0)/16=1875Kbps<td>average-rate > burst-threshold &rarr; Burst not allowed<td>0Mbps</tr>
</table>
===Burst-time=8s===


[[Image:Burst time.8.part1.JPG]]
[[Image:Burst time.8.part1.JPG]]
[[Image:Burst time.8.part2.JPG]]
[[Image: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


==Example Burst-time=16s==


[[Image:Burst time.16.part1.JPG]]
Average rate is calculated every 1/16th of burst time, so in this case every 0.5 seconds.
[[Image:Burst time.16.part2.JPG]]


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


[[Category:Manual]]
[[Category:Manual|QueuesBurst]]
[[Category:Unfinished]]
[[Category:QoS|QueuesBurst]]
[[Category:Case Studies|QueuesBurst]]

Latest revision as of 11:55, 18 December 2012

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)