QOS - Burst and Ceil Bursting

General questions.
cardins2u
Posts: 9
Joined: April 25th, 2015, 6:25 pm

QOS - Burst and Ceil Bursting

Post by cardins2u » April 27th, 2015, 2:52 am

I'm having problems understanding the following:

Burst
Ceil Bursting
TOS

Anyone willing to give a bit of explanation of how it works? I would appreciate it.

thank you

Stosi
Posts: 251
Joined: July 20th, 2013, 8:47 pm

Re: QOS - Burst and Ceil Bursting

Post by Stosi » April 27th, 2015, 8:39 am

cardins2u wrote:Burst
Ceil Bursting
TOS


Hello!

Here are some explaining for burst and ceil.
http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:networking:traffic_control#htb_-_hierarchical_token_bucket

And TOS, Type of Service.
http://www.lartc.org/howto/lartc.qdisc.classless.html

User avatar
lucifercipher
Posts: 258
Joined: April 1st, 2014, 7:54 pm
Location: Earth, Moon & Mars

Re: QOS - Burst and Ceil Bursting

Post by lucifercipher » April 28th, 2015, 11:54 am

cardins2u wrote:I'm having problems understanding the following:

Burst
Ceil Bursting
TOS

Anyone willing to give a bit of explanation of how it works? I would appreciate it.

thank you


Think of Burst as exceeding a limit defined . For example, You have a download limit 2048KBps so Ceiling burst can be 3172Kbps aka 3Mbps. This is useful in LAN based scenarios where you dont want your LAN clients to suffer a drag. The burst simply means a limit which can't or shouldn't be exceeded. So for a download limit of 2Mbps, you can set a burst rate of 2100Kbps as ISP sometimes allows you to achieve a burst rate. Hope this clears the concept.

Do read the links posted by Stosi as they are pretty good for detailed technical understanding.

cardins2u
Posts: 9
Joined: April 25th, 2015, 6:25 pm

Re: QOS - Burst and Ceil Bursting

Post by cardins2u » April 30th, 2015, 4:22 am

yes its really helpful! thank you. After your explainiation. I was able to optimize my internet at home. Now FPS for League of Legends are great and other various applications from web browsing to FTP transfer to newsbin are all good ...no lagg.

I have
Torrent running
Newbin running
and 2 web servers running.

everything without lag on league of legends. thank you!

Cardin

bloater99
Posts: 482
Joined: October 13th, 2014, 3:47 pm

Re: QOS - Burst and Ceil Bursting

Post by bloater99 » May 1st, 2015, 1:43 pm

In reading about token buckets, they refer to a "burst time" and a "burst rate". I wonder if in IPFire's implementation, does "burst" = "burst time" and "ceiling" = "burst rate"? That to me would make more sense:
ceiling = maximum possible burst rate
burst = how long the burst rate is sustained before scaling back to maximum bandwidth.

IPFire devs, do you have any idea? It would be great to get this documented.

bloater99
Posts: 482
Joined: October 13th, 2014, 3:47 pm

Re: QOS - Burst and Ceil Bursting

Post by bloater99 » May 1st, 2015, 2:30 pm

I'm pretty certain, after some testing, that the "Burst" value in IPFire's QoS, does not refer to speed. It may be a time (milliseconds?), it may be number of packets, it may be bytes...

Here is what I've done, I have gone through each class and capped the Maximum Bandwidth field to roughly 75% of my rated throughput. I then set "Ceiling Burst" to 100% of my rated throughput. So for example, on a 10/2 connection, I set each class maximum throughput to 7.5/1.5 and set the Ceiling Burst to 10/2.

I then set the "Burst" value to equal to the "Ceiling Burst" value. I was getting lots of buffer bloat as measure by both dslreports.com/speedtest and by pinging google while running bandwidth tests. Next, I dropped the "Burst" value to 1 for all classes and noticed that my uplink had absolutely zero buffer bloat while maintaining the Ceiling Burst speed. Downlink has improved buffer bloat, but still not ideal.

I have a feeling with a little more experimenting, I'll get nearly perfect results, but that still leaves the mystery of what "Burst" is referring to in QoS.

User avatar
lucifercipher
Posts: 258
Joined: April 1st, 2014, 7:54 pm
Location: Earth, Moon & Mars

Re: QOS - Burst and Ceil Bursting

Post by lucifercipher » May 1st, 2015, 5:43 pm

bloater99 wrote:I'm pretty certain, after some testing, that the "Burst" value in IPFire's QoS, does not refer to speed. It may be a time (milliseconds?), it may be number of packets, it may be bytes...

Here is what I've done, I have gone through each class and capped the Maximum Bandwidth field to roughly 75% of my rated throughput. I then set "Ceiling Burst" to 100% of my rated throughput. So for example, on a 10/2 connection, I set each class maximum throughput to 7.5/1.5 and set the Ceiling Burst to 10/2.

I then set the "Burst" value to equal to the "Ceiling Burst" value. I was getting lots of buffer bloat as measure by both dslreports.com/speedtest and by pinging google while running bandwidth tests. Next, I dropped the "Burst" value to 1 for all classes and noticed that my uplink had absolutely zero buffer bloat while maintaining the Ceiling Burst speed. Downlink has improved buffer bloat, but still not ideal.

I have a feeling with a little more experimenting, I'll get nearly perfect results, but that still leaves the mystery of what "Burst" is referring to in QoS.


The tactic.
http://netequalizernews.com/2010/01/29/ ... -consider/

bloater99
Posts: 482
Joined: October 13th, 2014, 3:47 pm

Re: QOS - Burst and Ceil Bursting

Post by bloater99 » May 1st, 2015, 6:49 pm

I do have an understanding of what bursting is. My question was more along the lines of what unit of measure is IPFire asking for?

Based on testing and trial/error, it appears that the "Burst" value is in BYTES. So, how many bytes of bandwidth should be sent at the burst ceiling rate. I initially thought this was a transfer rate, as in a "Burst Speed". But it appears to be "Burst size" (in bytes, not kilobytes or kilobits).

And Ceiling Burst appears to be a sort of maximum transfer rate ceiling, and seems to be in kilobits/sec unit. How Ceiling Burst relates to uplink or downlink speed, I don't know.

So here is an example of how I think this works. If a developer reads this and cares to confirm if I'm on the right track, I'd appreciate it.
Downlink speed: 10000 kbps (your measured maximum speeds with QoS off)
Uplink speed: 2000 kbps

ACK Class 101 Priority 1 Minimum 200 kbps Max 1500 kbps Burst 32 bytes Ceiling Burst 1900 kbps

So your uplink speed is 2Mbps. For the ACK class, you choose min/max transfer rates of 200/1500. When there is unused bandwidth available from the other classes, it can burst up to 1900 kbps in 32 byte packet sizes, until there is no extra bandwidth, at which time it will drop back to 1500 kbps.

What I'm not sure is, is the Uplink speed (2000 kbps) taking priority over Ceiling burst (1900 kbps) rate? Or will the Ceiling artificially cap off the uplink speed to 1900?

Assuming everything above is correct (which is a huge assumption!), how does one determine the optimal byte size for the Burst field?

User avatar
N0man
Posts: 299
Joined: July 26th, 2013, 1:56 am

Re: QOS - Burst and Ceil Bursting

Post by N0man » May 2nd, 2015, 4:10 pm

I've been studying about the Burst and Burst Ceiling.

Here is what I've found:

About Burst:
https://dataplumber.wordpress.com/2014/ ... f-service/

Here is what I did for my connection:

58 mbps download
12 mbps upload

Download Steps
58 mbps = 58000000 bits
58000000 bits / 1000 = 58000
58000 * 5 = 290000
300000 / 8 = 36250

The final number is 36250. I set that as my download burst.

Down.PNG


Upload Steps
12 mbps = 12000000 bits
12000000 / 1000 = 12000
12000 * 5 = 60000
60000 / 8 = 7500

The final number is 7500. I set that as my upload burst

Up.PNG


About Ceil Burst:
http://linux.die.net/man/8/tc-htb

cburst bytes
Amount of bytes that can be burst at 'infinite' speed, in other words, as fast as the interface can transmit them. For perfect evening out, should be equal to at most one average packet. Should be at least as high as the highest cburst of all children.


There is a value called MTU.
It is the max size of a packet.
On ethernet, the max default MTU is 1500 bytes

I've tried changing the ceil burst on IPFire from 1597b to 1500b. It caused issues. I would recommend leaving it default.

bloater99
Posts: 482
Joined: October 13th, 2014, 3:47 pm

Re: QOS - Burst and Ceil Bursting

Post by bloater99 » May 2nd, 2015, 5:32 pm

N0man wrote:About Ceil Burst:
http://linux.die.net/man/8/tc-htb

cburst bytes
Amount of bytes that can be burst at 'infinite' speed, in other words, as fast as the interface can transmit them. For perfect evening out, should be equal to at most one average packet. Should be at least as high as the highest cburst of all children.


There is a value called MTU.
It is the max size of a packet.
On ethernet, the max default MTU is 1500 bytes

I've tried changing the ceil burst on IPFire from 1597b to 1500b. It caused issues. I would recommend leaving it default.


I've been exerimenting with this too. It seems from my tests that Ceil Burst is actually a bandwidth value (at least as implemented in IPFire), not a byte value. As a test, drop your Max Bandwidth from 58000 to something like 30000. First test with a speedtest to confirm you are topping out at 30000. Now, go in and put 58000 in Ceil Burst and try again. From what I understood, the theory is you set all of your Classes to a reduced Maximum Bandwidth (let's say 30000 in your case for downlink). Then you can independently set each class Ceiling burst. The ceiling burst bandwidth will be achieved if there is extra available (unused) bandwidth that can be borrowed from the other classes. That is how I understood it anyway. And my tests seemed to confirm. Curious if yours do too.

See Figures 1 and 2 on this page for good illustrations of lowering Max bandwidth and increasing Ceil Burst to minimize unused (wasted) bandwidth:
http://www.juniper.net/techpubs/en_US/j ... ining.html
Last edited by bloater99 on May 2nd, 2015, 8:24 pm, edited 1 time in total.

bloater99
Posts: 482
Joined: October 13th, 2014, 3:47 pm

Re: QOS - Burst and Ceil Bursting

Post by bloater99 » May 2nd, 2015, 8:06 pm

It looks like that formula can be boiled down to:

X Mbps x 625 = Y bytes

Where X is your link speed in megabits per second and Y is the value you place in the Burst field.

So a 10/2 line would use burst values of
10x625=6250 for downlink
2x625=1250 for uplink

If you intentionally cap your bandwidth to counteract buffer bloat, I suppose you'd use the capped values.

User avatar
N0man
Posts: 299
Joined: July 26th, 2013, 1:56 am

Re: QOS - Burst and Ceil Bursting

Post by N0man » May 3rd, 2015, 4:55 pm

I think I figured it out.

The Ceil burst is the speed over your set maximum speed.

The Burst is the pool from which to ceil burst takes bandwidth.

If I wanted my download speed to burst from 56000 kilobits to 58000 kilobits for 2 seconds I would:

Set my maximum bandwidth to 56000
Set the burst to 4000 kilobits
Set the ceil to 2000 kilobits (Each second the Ceil burst takes half).

bloater99
Posts: 482
Joined: October 13th, 2014, 3:47 pm

Re: QOS - Burst and Ceil Bursting

Post by bloater99 » May 3rd, 2015, 7:19 pm

LOL. I think we will eventually get this 100% figured out. I started testing your theory, and noticed that Ceil Burst seems to turn all bandwidth limiting off for X milliseconds. So a Ceil Burst of 3000 will run that Class at maximum link speed for 3000 milliseconds, or 3 seconds. Try it with speedof.me or testmy.net. Set your max to 40000, leave Burst blank, and set Ceil Burst to 3000. If running testmy.net, pick a manual download size of 50 MB to give you more room to test so the test doesn't complete before your 3000 ms completes. Your result should run at top speed for 3 seconds, then drop to 40 Mbps for the duration. Change Ceil Burst to 5000 and it should run at max link speed for 5 seconds.

I think you were right on Burst the first time: it is the byte value for the packets that are being sent during Burst Mode. You could set to to 1,000,000 if you want (1 megabyte) but a more realistic value is between 1 and 16 kilobytes (1024 - 16384).

User avatar
lucifercipher
Posts: 258
Joined: April 1st, 2014, 7:54 pm
Location: Earth, Moon & Mars

Re: QOS - Burst and Ceil Bursting

Post by lucifercipher » May 4th, 2015, 7:59 am

bloater99 wrote:LOL. I think we will eventually get this 100% figured out. I started testing your theory, and noticed that Ceil Burst seems to turn all bandwidth limiting off for X milliseconds. So a Ceil Burst of 3000 will run that Class at maximum link speed for 3000 milliseconds, or 3 seconds. Try it with speedof.me or testmy.net. Set your max to 40000, leave Burst blank, and set Ceil Burst to 3000. If running testmy.net, pick a manual download size of 50 MB to give you more room to test so the test doesn't complete before your 3000 ms completes. Your result should run at top speed for 3 seconds, then drop to 40 Mbps for the duration. Change Ceil Burst to 5000 and it should run at max link speed for 5 seconds.

I think you were right on Burst the first time: it is the byte value for the packets that are being sent during Burst Mode. You could set to to 1,000,000 if you want (1 megabyte) but a more realistic value is between 1 and 16 kilobytes (1024 - 16384).


Findings in real life matter a lot. Everyone should be thankful for your hard work and efforts in testing and writing up the stats. You have my regard bloater99 ^-^

User avatar
N0man
Posts: 299
Joined: July 26th, 2013, 1:56 am

Re: QOS - Burst and Ceil Bursting

Post by N0man » May 4th, 2015, 2:50 pm

I found out this trick with bursting to reduce bufferbloat.

If I put my maximum download bandwidth to 60000 kilobits, I have a lot of bufferbloat.

I found that I could prevent that by setting the burst and ceilburst to .001

This disables bursting. For some reason setting the value to 0 doesn't seem to disable it.

After doing this, I was able to keep the high speed without gaining additional bufferbloat.

I still get the moderate initial latency, but if I put the bandwidth to lower, it removes this as well.

Post Reply