10

Let's say I have a server with a lot of external IPs, 1024+. My users are causing heavy traffic but not all of them. The ones eating all the bandwidth are few and cause the other ones to suffer from low internet speed because they eat all bandwidth.

We're thinking of implementing a shaping rule to ensure everyone's happy or at least the majority is and we're debating over the best approach to do so.

First plan

Figure how many clients are logged on and split the bandwidth among them having everyone eat the same piece of cake.

Advantages:

  • I don't pay big bills on bandwidth
  • Nobody's breaking the law

    Disadvantages

  • bandwidth is split equal and users with low needs in bandwidth (reading papers, reading Facebook etc) will have the same bandwidth as heavy users who rely on my services for their business.

  • all users will have the same bandwidth, but, the users with low needs will "jail" their share even though they won't need all of it so I'm left with a lot of bandwidth not being used

Second plan

Monitor users and see if they are on the bandwidth limit or over it (server total limit). If they reach that point try to identify what users are eating the most of it. If we find users eating more than 40%-50% of the total bandwidth send them to a jail for 20 minutes. Jail meaning lowering their bandwidth to 250kb/s for example.

Advantages:

  • No bandwidth is wasted
  • If no bandwidth is wasted important users can use more of it and I have happy clients
  • It's a more intelligent solution allowing everyone to expand based on their needs
  • Uses a bandwidth police where the bad guys are jailed and the good guys (the many in most cases) are a happy society

    Disadvantages

  • Monitoring tools on a heavy load server can put it "to sleep" as they tend to eat a lot of resources

  • I may have no bad guys but a lot of good guys online and bandwidth going over the limit and be in the situation to not know who to punish (in this case we may apply First plan for 1 hour)

I'm open to a little brainstorming and suggestions

Wilshire
  • 538
  • 6
  • 19
Romeo M.
  • 225
  • 1
  • 2
  • 5
  • 1
    If your customers are paying for contended bandwidth, they've got nothing to complain about. If they're paying for uncontended bandwidth, you're defrauding them. Either way, no problem to be solved. – womble Jul 09 '11 at 07:30
  • 1
    Stick to the question please – Romeo M. Jul 09 '11 at 14:05

3 Answers3

2

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.

Lucas Kauffman
  • 16,818
  • 9
  • 57
  • 92
  • There are simple ways to use a hierarchical scheduler like HTB with a defined "maximum" bandwidth and an optional "ceiling" parameter where users can grab bandwidth as long as an overall upper limit is not reached. The documentation can be found over at [LARTC.org](http://lartc.org/howto/lartc.qdisc.classful.html#AEN1072). – the-wabbit Jul 08 '11 at 22:17
1

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.

Wilshire
  • 538
  • 6
  • 19
  • We have over 60 servers with clients buying, comming, leaving. I don't have any ways of understanding each and everyone's needs. Some of them use web scrappers, others are doing facebook or whatever marketing. I need a solution that will address everyone no matter what they do with the ip's I give them that's why it's hard to do what you said. – Romeo M. Jul 08 '11 at 22:02
0

I use a managed switch between my T1 router and each firewall needed. This allows me to set proper QoS bandwidth limitations in its configuration prior to hitting each network's gateway.

user87037
  • 31
  • 2