Hello Butch,

Thanks for your insight with this problem. I read through the information and your blog. I believe we should pursue implementing the method you mention to try and balance the usage of the users. The prioritization script is something we want also but at the moment even http is suffering horribly. We just upgraded the feed to 4Mbps/512Kbps and it looks almost exactly the same performance wise. Average daily peak throughput really hasn't gone up much. I was originally told specifically that we were on a 5:1 oversell, but they just recently informed us that it is actually a 10:1 oversell 8(. A recent speedtest run by a user at 8pm showed 220Kbps down and 60Kbps up. At 1am in the morning (5am EST) when running a test I see the network average around 1200Kbps but it also dips as low as 800Kbps and peaks briefly to 1.9Mbps. On a second test I can only peak the network up to 1100Kbps. This is very disappointing since this is about the best I can ever expect to get from this system at this service level, it only goes downhill or more expensive from here.

We were already looking at upgrading the mikrotik router at the core of the network. Currently our core unit handles NAT, Web-proxy cache, and an 8 port serial for dial-up modems. NAT is a mean thing to do but the satellite provider only allowed us enough IPs for about 20-30% of our customer base, so we reserve them for businesses. We actually run Mikrotiks at each base site to provide per user bandwidth limits and for monitoring.

What I was wondering is with the complexity of NAT and web-proxy would we be better off running a separate Mikrotik at the core just to handle the additional bandwidth control we are discussing? I also was thinking it might be possible that one of the supermicro dual core atom 1U rackmount servers with hard drives for cache and Mikrotik DOM might be able to handle everything (except for the modems of course). I haven't looked into alternatives for modems though, maybe I could just connect them all through USB if we decide to keep them. I think we are only using 4 or 5 modems and we are trying to get them moved to 900Mhz.

I believe we would like to hire you to get your assistance to setup the bandwidth management that we are discussing. I see the prioritization script is for sale on your store as well. I have done a little bit of scripting so I was curious what versions of MIkrotik OS does it work on?

- Dan






On 5/21/2010 8:36 PM, Butch Evans wrote:
On Fri, 2010-05-21 at 17:24 -0800, Dan Ferguson wrote:
I haven't checked those out yet, I will have to go take a look. We are
willing to try it, I am sure of that.
I'm sorry, but I missed the first message in this thread.  I will try to
address some of your questions/concerns now, though.

We have a site in a very tiny town in McGrath Alaska that we have to run
on Satellite, the amount of bandwidth we receive is always variable.
This will be the most difficult part to deal with.  In general, when we
have an unknown amount of bandwidth available to us, the router will not
be able to accurately share that.  What we CAN do, though, is ensure
that the "priority" traffic goes first.

The problem with
this is we are unable to effectively shape users to allow all users to
get a slice of the overall feed.
You have very accurately described the problem.

The first couple of customers can reach their
service level and then the rest get stuck in the mud. So a couple will
hit 512Kbps (with one session) and then other may see only 8-12Kbps
(bits).
This is where prioritization comes into play.  There are 2 things that
we need to do.  First, we can use a queuing algorithm that can help to
"enforce sharing".  With a fairly small amount of bandwidth overall, SFQ
may be a good choice.  The algorithm that SFQ uses attempts to enforce
sharing by keeping every "flow" equal.  In other words, 1 flow gets 100%
of the bandwidth available to the queue, 2 flows would get 50% each.
The problem with this in your situation is that SFQ does not work very
well with an unknown "maximum" availability of bw AND it bases is
algorithm on flows and NOT in IP addresses.

RED queues are an "advancement" from SFQ.  Like the SFQ, the RED queue
algorithm will try to enforce sharing, but it manages the flows such
that it tries to keep these flows with an average queue (actual packets
in the queue) equal.  In other words, instead of keeping each flow at
the same speed, RED will try to keep the queued packets equal.  The
algorithm for RED seems to work better in the situation you have
described when compared to SFQ.

PCQ is probably the best choice for you, but PCQ is an algorithm that
REALLY needs to know the maximum speed available.  PCQ is like a "bundle
of FIFO queues".  Each of the subqueues (based on IP addresses) is given
it's own FIFO queue and the output side of the queue is managed in such
a way that each subqueue gets the same speed.  It is VERY accurate when
the overall bw availability you set is accurate to what is actually
available.

In your situation, I'd probably START with RED and then try PCQ and then
SFQ (if all else failed).

We could lower each users capable service
level but that would only delay the problem from occurring until more
users had peaked the unknown amount of bandwidth available.
With the above tutorial in mind, I will suggest that the other part of
the solution is NOT to limit speeds to the individual user.  You are
correct, I think, that it would (at best) just delay the problem.  The
other part of the QOS solution that Josh (and others) mentioned is the
scheduling (or prioritization) of traffic.  The algorithms above are
just the "means to an end".  The actual QOS portion of my script allows
you to easily set priority on specific traffic types.  We can enforce
sharing in such a way that short, bursty traffic gets priority over
longer (more resource intensive) downloads.  There are a number of ways
to improve how the network responds, but the "problem" you describe is a
VERY hard nut to crack.  I really think a good scheduling QOS will help,
though I can't say I've been able to test as well in the specific
circumstance of unknown bandwidth availability.

You can read about the actual methods (well, my thought processes
anyway) on my blog, but I am willing to answer any further questions you
may have either here or in a private exchange.  FWIW, there is a link to
my blog at the bottom of every message to this list.

_______________________________________________
Mikrotik mailing list
Mikrotik@mail.butchevans.com
http://www.butchevans.com/mailman/listinfo/mikrotik

Visit http://blog.butchevans.com/ for tutorials related to Mikrotik RouterOS

Reply via email to