Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
What's your budget? – ewwhite Jan 30 '13 at 15:41

You might look into setting up a solution using Linux's traffic control (tc). A stochastic fairness queue ( 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 ( 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 ( and this ( or you can take a look at a pre-built solution like wonder-shaper (

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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