Hopefully someone has a suggestion on how I might do this...as I can''t figure it out :( I need to be able to set up a group of seperate users who have a "bandwidth pool" they share, but also be able to limit their individual bandwidth as well. Example: I have 5 customers and would like to be able to provide them with a maximum of 256Kbit each, with a CIR of 33%. To do this, I''d like the 5 customers to share a parent group which is therefore limited to 426Kbit, Which is 5*256Kbit/3. The idea being that individual customers can achieve up to a maximum of 256Kbit provided that the total group pool doesn''t exceed 426Kbit, and if the total group pool maxes out, then each customer should get reduced bandwidth in fair ratios based on their individual maximum setting. (Currently 256Kbit for all of them, but I''d like to be able to differentiate them later) If all 5 were trying to fully utilize their bandwidth at the same time, they should get a fairly distributed 33% of their maximum - eg about 85Kbit. The problem I can see is that both CBQ and HTB don''t seem to honour situations where the sum of all the child rates exceeds the parent rate - the parent rate is ignored so the 426Kbit cap is exceeded. The HTB docs even explicitely say this won''t work. So is there any tricky way to do this with slightly different semantics ? Surely there must be some way :-) I''ve spent many long hours studying CBQ and trying things out and finally came to the conclusion that CBQ alone just can''t do it, but I was hoping HTB could, but thus far I''ve been unsuccessful here too.. Currently I''m using CBQ but I''m limited in that the individual maximum speeds can only equal the parent group maximum bandwidth which is workable for a few customers, but not very satisfactory and not flexible enough as I add more customers. If someone could point me in the right direction or just give me a firm "nope, can''t be done" that would be great.... I''d also like to enable short term bursting over and above this as well, to improve responsiveness during downloading, say, 33% overbandwidth for 5 seconds, that sort of thing, but I''ll cross that bridge when (if) I get to it...(any comments here on how effective enabling bursting is for reducing the dreaded unresponsiveness-during-downloads problem would be welcome too) Regards, Simon _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Santiago J. Ruano Rincón
2004-Jan-20 21:22 UTC
Re: Fair bandwidth oversubscribing ? How with HTB ?
try HFSC, Hierarchical Fair Service Curve: http://trash.net/~kaber/hfsc http://www-2.cs.cmu.edu/~hzhang/HFSC/ i''m going to test it in this week. Quoting Simon Byrnand <simon@igrin.co.nz>:> Hopefully someone has a suggestion on how I might do this...as I can''t > figure it out :( > > I need to be able to set up a group of seperate users who have a > "bandwidth pool" they share, but also be able to limit their individual > bandwidth as well. > > Example: > > I have 5 customers and would like to be able to provide them with a > maximum of 256Kbit each, with a CIR of 33%. > > To do this, I''d like the 5 customers to share a parent group which is > therefore limited to 426Kbit, Which is 5*256Kbit/3. > > The idea being that individual customers can achieve up to a maximum of > 256Kbit provided that the total group pool doesn''t exceed 426Kbit, and if > the total group pool maxes out, then each customer should get reduced > bandwidth in fair ratios based on their individual maximum setting. > (Currently 256Kbit for all of them, but I''d like to be able to > differentiate them later) > > If all 5 were trying to fully utilize their bandwidth at the same time, > they should get a fairly distributed 33% of their maximum - eg about > 85Kbit. > > The problem I can see is that both CBQ and HTB don''t seem to honour > situations where the sum of all the child rates exceeds the parent rate - > the parent rate is ignored so the 426Kbit cap is exceeded. The HTB docs > even explicitely say this won''t work. > > So is there any tricky way to do this with slightly different semantics ? > Surely there must be some way :-) I''ve spent many long hours studying CBQ > and trying things out and finally came to the conclusion that CBQ alone > just can''t do it, but I was hoping HTB could, but thus far I''ve been > unsuccessful here too.. > > Currently I''m using CBQ but I''m limited in that the individual maximum > speeds can only equal the parent group maximum bandwidth which is workable > for a few customers, but not very satisfactory and not flexible enough as > I add more customers. > > If someone could point me in the right direction or just give me a firm > "nope, can''t be done" that would be great.... > > I''d also like to enable short term bursting over and above this as well, > to improve responsiveness during downloading, say, 33% overbandwidth for 5 > seconds, that sort of thing, but I''ll cross that bridge when (if) I get to > it...(any comments here on how effective enabling bursting is for reducing > the dreaded unresponsiveness-during-downloads problem would be welcome > too) > > Regards, > Simon > > _______________________________________________ > LARTC mailing list / LARTC@mailman.ds9a.nl > http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/ >Santiago J. Ruano Rincón Avatar Ltda. ParqueSoft Popayán +57-2 8221214 _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Santiago J. Ruano Rincón wrote:>try HFSC, Hierarchical Fair Service Curve: > >http://trash.net/~kaber/hfsc >http://www-2.cs.cmu.edu/~hzhang/HFSC/ > >i''m going to test it in this week. > >This should indeed work with HFSC if the custumer-classes have only links-haring service curves and no realtime service curves. The parent class would be limited with an upper-limit service curve. With link-sharing service curves, only the relative differences of virtual time on a level of the heirarchy are relevant, so there is no problem oversubscribing the parent class. the upper-limit service curve of the parent limits the total bandwidth, unlike the link-sharing curve it uses wall-clock time. Best regards, Patrick PS: Please let me know if you are successful.>Quoting Simon Byrnand <simon@igrin.co.nz>: > > > >>Hopefully someone has a suggestion on how I might do this...as I can''t >>figure it out :( >> >>I need to be able to set up a group of seperate users who have a >>"bandwidth pool" they share, but also be able to limit their individual >>bandwidth as well. >> >>Example: >> >>I have 5 customers and would like to be able to provide them with a >>maximum of 256Kbit each, with a CIR of 33%. >> >>To do this, I''d like the 5 customers to share a parent group which is >>therefore limited to 426Kbit, Which is 5*256Kbit/3. >> >>The idea being that individual customers can achieve up to a maximum of >>256Kbit provided that the total group pool doesn''t exceed 426Kbit, and if >>the total group pool maxes out, then each customer should get reduced >>bandwidth in fair ratios based on their individual maximum setting. >>(Currently 256Kbit for all of them, but I''d like to be able to >>differentiate them later) >> >>If all 5 were trying to fully utilize their bandwidth at the same time, >>they should get a fairly distributed 33% of their maximum - eg about >>85Kbit. >> >>The problem I can see is that both CBQ and HTB don''t seem to honour >>situations where the sum of all the child rates exceeds the parent rate - >>the parent rate is ignored so the 426Kbit cap is exceeded. The HTB docs >>even explicitely say this won''t work. >> >>So is there any tricky way to do this with slightly different semantics ? >>Surely there must be some way :-) I''ve spent many long hours studying CBQ >>and trying things out and finally came to the conclusion that CBQ alone >>just can''t do it, but I was hoping HTB could, but thus far I''ve been >>unsuccessful here too.. >> >>Currently I''m using CBQ but I''m limited in that the individual maximum >>speeds can only equal the parent group maximum bandwidth which is workable >>for a few customers, but not very satisfactory and not flexible enough as >>I add more customers. >> >>If someone could point me in the right direction or just give me a firm >>"nope, can''t be done" that would be great.... >> >>I''d also like to enable short term bursting over and above this as well, >>to improve responsiveness during downloading, say, 33% overbandwidth for 5 >>seconds, that sort of thing, but I''ll cross that bridge when (if) I get to >>it...(any comments here on how effective enabling bursting is for reducing >>the dreaded unresponsiveness-during-downloads problem would be welcome >>too) >> >>Regards, >>Simon >> >>_______________________________________________ >>LARTC mailing list / LARTC@mailman.ds9a.nl >>http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/ >> >> >> > > >Santiago J. Ruano Rincón > >Avatar Ltda. >ParqueSoft Popayán >+57-2 8221214 > >_______________________________________________ >LARTC mailing list / LARTC@mailman.ds9a.nl >http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/ > >_______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Santiago J. Ruano Rincón
2004-Jan-22 17:06 UTC
Re: Fair bandwidth oversubscribing ? How with HTB ?
Did you think something like this?: tc class add dev eth0 parent x: ... htb rate 83kbps ceil 256kbps Quoting Simon Byrnand <simon@igrin.co.nz>:> Hopefully someone has a suggestion on how I might do this...as I can''t > figure it out :( > > I need to be able to set up a group of seperate users who have a > "bandwidth pool" they share, but also be able to limit their individual > bandwidth as well. > > Example: > > I have 5 customers and would like to be able to provide them with a > maximum of 256Kbit each, with a CIR of 33%. > > To do this, I''d like the 5 customers to share a parent group which is > therefore limited to 426Kbit, Which is 5*256Kbit/3. > > The idea being that individual customers can achieve up to a maximum of > 256Kbit provided that the total group pool doesn''t exceed 426Kbit, and if > the total group pool maxes out, then each customer should get reduced > bandwidth in fair ratios based on their individual maximum setting. > (Currently 256Kbit for all of them, but I''d like to be able to > differentiate them later) > > If all 5 were trying to fully utilize their bandwidth at the same time, > they should get a fairly distributed 33% of their maximum - eg about > 85Kbit. > > The problem I can see is that both CBQ and HTB don''t seem to honour > situations where the sum of all the child rates exceeds the parent rate - > the parent rate is ignored so the 426Kbit cap is exceeded. The HTB docs > even explicitely say this won''t work. > > So is there any tricky way to do this with slightly different semantics ? > Surely there must be some way :-) I''ve spent many long hours studying CBQ > and trying things out and finally came to the conclusion that CBQ alone > just can''t do it, but I was hoping HTB could, but thus far I''ve been > unsuccessful here too.. > > Currently I''m using CBQ but I''m limited in that the individual maximum > speeds can only equal the parent group maximum bandwidth which is workable > for a few customers, but not very satisfactory and not flexible enough as > I add more customers. > > If someone could point me in the right direction or just give me a firm > "nope, can''t be done" that would be great.... > > I''d also like to enable short term bursting over and above this as well, > to improve responsiveness during downloading, say, 33% overbandwidth for 5 > seconds, that sort of thing, but I''ll cross that bridge when (if) I get to > it...(any comments here on how effective enabling bursting is for reducing > the dreaded unresponsiveness-during-downloads problem would be welcome > too) > > Regards, > Simon > > _______________________________________________ > LARTC mailing list / LARTC@mailman.ds9a.nl > http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/ >Santiago J. Ruano Rincón Avatar Ltda. ParqueSoft Popayán +57-2 8221214 _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
At 13:13 21/01/2004, Patrick McHardy wrote:>Santiago J. Ruano Rincón wrote: > >>try HFSC, Hierarchical Fair Service Curve: >> >>http://trash.net/~kaber/hfsc >>http://www-2.cs.cmu.edu/~hzhang/HFSC/ >> >>i''m going to test it in this week. >> > >This should indeed work with HFSC if the custumer-classes have only >links-haring service curves and no realtime service curves. The parent >class would be limited with an upper-limit service curve. With >link-sharing service curves, only the relative differences of virtual >time on a level of the heirarchy are relevant, so there is no problem >oversubscribing the parent class. the upper-limit service curve of the >parent limits the total bandwidth, unlike the link-sharing curve it >uses wall-clock time. > >Best regards, >Patrick > >PS: Please let me know if you are successful.Hi, I quickly looked at HFSC''s page, but from what I see it is not in the standard kernel, so I''d like to see if HTB can do it first before trying HFSC as the machine is running 2.4.24 which has HTB built in. From some other replies it looks like HTB can do it. Regards, Simon _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/