bandwidth shaping, the best approach
Solution 1:
How about a bucket system, where the bandwith is lowered gradually when someone uses all bandwith ? It would go slower and slower and slower if they use a lot more than average. But the bucket empties over time so they can go at full speed again when :
- there isn't high load on the network
- they haven't been using the network for some time or intensivity
you could also make more scenarios and dynamically make new policies depending on the scenario and the evolution during the network usage.
Solution 2:
I'd first determine what the traffic actually is (this is the most important thing to do instead of just blindly implementing something). Of course if the user is downloading torrents of movies while at work to take advantage of a highspeed connection at work then there are better ways to more directly resolve the issue. Other instances where the user might have a server that runs an internal server that talks to one of the database servers may at times cause spikes in bandwidth usage in order to perform in a reasonable manner.
The point is to first do an analysis on which users are consuming the most data and assign reasons to why it is necessary that they use that much. This part will give you justification to give to management when the few users that were hogging bandwidth start to complain. In some cases it maybe that they really do need to consume that much bandwidth, but in some cases you will find their is network abuse going on.
After that you can then address the problems and if need be after that implement a bandwidth shaping policy if buying more bandwidth for the company is out of the question.