At work we have a dedicated Internet link for everyday use (servers use a different link) with limited upload bandwidth (currently 3Mbps). Since there are ~80 users, sometimes this upstream link shoots up to 100% utilization degrading performance noticeably. Most of the time this is due to several users trying to upload files to Dropbox, Google Drive,... simultaneously. I've tried traffic shaping for the offending services but it requires some maintenance since users seem to be very good at finding new services that eat upload bandwidth for breakfast.

I've been thinking about a different approach. Some kind of dynamic bandwidth management on a user basis. In the morning everybody would start "clean", with no traffic shaping in place (or some very basic scheme), but as the day goes by "heavy uploaders" would be shaped more and more aggressively automatically (maybe by some predefined tiers).

My idea is to set up a Linux box to act as the router (or maybe a bridge in front of the actual router). Any ideas on how to implement this?

  • What's your budget? – ewwhite Jan 30 '13 at 15:41
  • What kind of router do you have? – Ron Maupin Feb 10 '20 at 0:05

You might look into setting up a solution using Linux's traffic control (tc). A stochastic fairness queue (http://opalsoft.net/qos/DS-25.htm) can give each user their own fair share of bandwidth in turn, ensuring that no one person hogs the line.

If you stick that on the end of a hierarchical token bucket (http://opalsoft.net/qos/DS-28.htm) to limit the speed then you should be good to go.

Its not an easy task to get your head around tc though, check out this (http://opalsoft.net/qos/DS.htm) and this (http://www.lartc.org/howto/lartc.qdisc.html) or you can take a look at a pre-built solution like wonder-shaper (http://lartc.org/wondershaper/)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.