Manual:Queues - Burst: Difference between revisions
No edit summary |
|||
(34 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Versions|v2.9 and newer}} | |||
__TOC__ | __TOC__ | ||
==Theory== | ==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. | |||
# '''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-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 | |||
# '''actual-rate''' (read-only) : actual traffic transfer rate of the queue | |||
==Example== | ==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=== | |||
[[Image:Burst time.16.part1.JPG]] | |||
[[Image: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 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 | |||
Average rate is calculated every 1/16th of burst time, so in this case every 0.5 seconds. | |||
<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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → 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 → Burst not allowed<td>0Mbps (0Mb per 0,5sek)</tr> | |||
</table> | |||
[[Category:Manual]] | [[Category:Manual|QueuesBurst]] | ||
[[Category: | [[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.
- 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-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
- 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
Time | 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 → Burst is allowed | 4Mbps |
1 | (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4)/16=250Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
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 allowed | 4Mbps |
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 allowed | 4Mbps |
4 | (0+0+0+0+0+0+0+0+0+0+0+0+4+4+4+4)/16=1000Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
5 | (0+0+0+0+0+0+0+0+0+0+0+4+4+4+4+4)/16=1250Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
6 | (0+0+0+0+0+0+0+0+0+0+4+4+4+4+4+4)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
7 | (0+0+0+0+0+0+0+0+0+4+4+4+4+4+4+2)/16=1625Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
8 | (0+0+0+0+0+0+0+0+4+4+4+4+4+4+2+2)/16=1750Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
9 | (0+0+0+0+0+0+0+4+4+4+4+4+4+2+2+2)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
10 | (0+0+0+0+0+0+4+4+4+4+4+4+2+2+2+2)/16=2Mbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
11 | (0+0+0+0+0+4+4+4+4+4+4+2+2+2+2+0)/16=2Mbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
12 | (0+0+0+0+4+4+4+4+4+4+2+2+2+2+0+0)/16=2Mbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
13 | (0+0+0+4+4+4+4+4+4+2+2+2+2+0+0+0)/16=2Mbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
14 | (0+0+4+4+4+4+4+4+2+2+2+2+0+0+0+0)/16=2Mbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
15 | (0+4+4+4+4+4+4+2+2+2+2+0+0+0+0+0)/16=2Mbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
16 | (4+4+4+4+4+4+2+2+2+2+0+0+0+0+0+0)/16=2Mbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
17 | (4+4+4+4+4+2+2+2+2+0+0+0+0+0+0+0)/16=1750Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
18 | (4+4+4+4+2+2+2+2+0+0+0+0+0+0+0+2)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
19 | (4+4+4+2+2+2+2+0+0+0+0+0+0+0+2+2)/16=1375Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
20 | (4+4+2+2+2+2+0+0+0+0+0+0+0+2+2+4)/16=1375Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
21 | (4+2+2+2+2+0+0+0+0+0+0+0+2+2+4+4)/16=1375Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
22 | (2+2+2+2+0+0+0+0+0+0+0+2+2+4+4+4)/16=1375Kbps | average-rate < burst-threshold → Burst is allowed | 4Mbps |
23 | (2+2+2+0+0+0+0+0+0+0+2+2+4+4+4+4)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
24 | (2+2+0+0+0+0+0+0+0+2+2+4+4+4+4+2)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
25 | (2+0+0+0+0+0+0+0+2+2+4+4+4+4+2+2)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
26 | (0+0+0+0+0+0+0+2+2+4+4+4+4+2+2+2)/16=1500Kbps | average-rate = burst-threshold → Burst not allowed | 2Mbps |
27 | (0+0+0+0+0+0+2+2+4+4+4+4+2+2+2+2)/16=1625Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
28 | (0+0+0+0+0+2+2+4+4+4+4+2+2+2+2+2)/16=1750Kbps | average-rate > burst-threshold → Burst not allowed | 2Mbps |
29 | (0+0+0+0+2+2+4+4+4+4+2+2+2+2+2+2)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
30 | (0+0+0+2+2+4+4+4+4+2+2+2+2+2+2+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
31 | (0+0+2+2+4+4+4+4+2+2+2+2+2+2+0+0)/16=1875Kbps | average-rate > burst-threshold → Burst not allowed | 0Mbps |
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.
Time | average-rate | burst | actual-rate |
---|---|---|---|
0.0 | (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 | 4Mbps (2Mb per 0,5sek) |
0.5 | (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 | 4Mbps (2Mb per 0,5sek) |
1.0 | (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 | 4Mbps (2Mb per 0,5sek) |
1.5 | (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 | 4Mbps (2Mb per 0,5sek) |
2.0 | (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 | 4Mbps (2Mb per 0,5sek) |
2.5 | (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 | 4Mbps (2Mb per 0,5sek) |
3.0 | (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 | 2Mbps (1Mb per 0,5sek) |
3.5 | (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 | 2Mbps (1Mb per 0,5sek) |
4.0 | (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 | 2Mbps (1Mb per 0,5sek) |
4.5 | (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 | 2Mbps (1Mb per 0,5sek) |
5.0 | (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 | 2Mbps (1Mb per 0,5sek) |
5.5 | (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 | 2Mbps (1Mb per 0,5sek) |
6.0 | (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 | 2Mbps (1Mb per 0,5sek) |
6.5 | (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 | 2Mbps (1Mb per 0,5sek) |
7.0 | (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 | 2Mbps (1Mb per 0,5sek) |
7.5 | (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 | 2Mbps (1Mb per 0,5sek) |
8.0 | (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 | 2Mbps (1Mb per 0,5sek) |
8.5 | (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 | 2Mbps (1Mb per 0,5sek) |
9.0 | (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 | 2Mbps (1Mb per 0,5sek) |
9.5 | (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 | 2Mbps (1Mb per 0,5sek) |
10.0 | (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 | 2Mbps (1Mb per 0,5sek) |
10.5 | (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 | 2Mbps (1Mb per 0,5sek) |
11.0 | (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 | 2Mbps (1Mb per 0,5sek) |
11.5 | (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 | 2Mbps (1Mb per 0,5sek) |
12.0 | (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 | 2Mbps (1Mb per 0,5sek) |
12.5 | (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 | 2Mbps (1Mb per 0,5sek) |
13.0 | (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 | 0Mbps (0Mb per 0,5sek) |
13.5 | (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 | 0Mbps (0Mb per 0,5sek) |
14.0 | (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 | 0Mbps (0Mb per 0,5sek) |
14.5 | (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 | 0Mbps (0Mb per 0,5sek) |
15.0 | (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 | 0Mbps (0Mb per 0,5sek) |
15.5 | (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 | 0Mbps (0Mb per 0,5sek) |
16.0 | (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 | 0Mbps (0Mb per 0,5sek) |
16.5 | (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 | 0Mbps (0Mb per 0,5sek) |
17.0 | (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 | 2Mbps (1Mb per 0,5sek) |
17.5 | (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 | 4Mbps (2Mb per 0,5sek) |
18.0 | (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 | 4Mbps (2Mb per 0,5sek) |
18.5 | (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 | 4Mbps (2Mb per 0,5sek) |
19.0 | (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 | 4Mbps (2Mb per 0,5sek) |
19.5 | (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 | 2Mbps (1Mb per 0,5sek) |
20.0 | (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 | 2Mbps (1Mb per 0,5sek) |
20.5 | (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 | 2Mbps (1Mb per 0,5sek) |
21.0 | (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 | 2Mbps (1Mb per 0,5sek) |
21.5 | (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 | 2Mbps (1Mb per 0,5sek) |
22.0 | (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 | 2Mbps (1Mb per 0,5sek) |
22.5 | (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 | 2Mbps (1Mb per 0,5sek) |
23.0 | (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 | 2Mbps (1Mb per 0,5sek) |
23.5 | (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 | 2Mbps (1Mb per 0,5sek) |
24.0 | (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 | 2Mbps (1Mb per 0,5sek) |
24.5 | (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 | 2Mbps (1Mb per 0,5sek) |
25.0 | (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 | 2Mbps (1Mb per 0,5sek) |
25.5 | (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 | 2Mbps (1Mb per 0,5sek) |
26.0 | (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 | 2Mbps (1Mb per 0,5sek) |
26.5 | (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 | 2Mbps (1Mb per 0,5sek) |
27.0 | (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 | 2Mbps (1Mb per 0,5sek) |
27.5 | (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 | 2Mbps (1Mb per 0,5sek) |
28.0 | (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 | 2Mbps (1Mb per 0,5sek) |
28.5 | (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 | 2Mbps (1Mb per 0,5sek) |
29.0 | (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 | 2Mbps (1Mb per 0,5sek) |
29.5 | (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 | 2Mbps (1Mb per 0,5sek) |
30.0 | (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 | 2Mbps (1Mb per 0,5sek) |
30.5 | (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 | 0Mbps (0Mb per 0,5sek) |
31.0 | (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 | 0Mbps (0Mb per 0,5sek) |