When to choose which queue type?

I have an RB750 on a cable internet connection. I don’t plan to do any prioritizing but I want to use queues for bandwidth sharing. Right now I’m using pcq queues, but would this be a good time to use red queues, sfq queues or one of the other queue types? I’ve Googled for red queue examples and haven’t found anything that seems ready to use. I’m guessing pcq queues are more common.

Greg

The old manual contains details: http://www.mikrotik.com/testdocs/ros/2.9/root/queue.php

Yeah, read that and some other stuff too but it doesn’t really tell much about the selection process. I guess I’ll just try the different queues and see what happens. I was hoping someone had some clear cut info on when to use the different queues. It seems like just going by the number of examples available that pcq is the one everyone uses.

PFIFO/BFIFO are very, very simple queueing mechanisms - they can hold a certain number of packets or bytes. Every packet being sent through the queue is put to the end of the queue. The router sends from the top of the queue. If the queue is full (all byte/packet slots are used) and a new packet comes in, it is dropped. This means that you cannot set a rate limit in “data volume/time unit” with them, but it also means that processing them is very cheap. All they do is make sure that each flow gets some time on the line. If you don’t want to rate limit and don’t have a congested link (your ISP circuit doesn’t get fully saturated) they work well.

SFQ doesn’t rate limit either, but it’s very good at making sure that on a congested link TCP and UDP sessions all get some of the oversubscribed bandwidth. If you’re constantly at the bandwidth limit of your circuit and want to make sure that users don’t experience that as “the Internet being down”, SFQ makes sure that - while slowly - each connection gets through and that one connection doesn’t hog all the available bandwidth.

RED works a lot like FIFO queues, but analyzes queue sizes and randomly starts dropping packets before the circuit becomes congested. RED works a lot better when the queues are large so that the protocols that are having packets dropped have more time to adjust to that fact. In that sense RED is an improvement on FIFO, and is a contender with SFQ in that it works on links that are congested.

While none of the above rate limit to “data volume/time unit”, since they are attached to leaves in an HTB which can rate limit, you get their properties combined with those of the token bucket.

PCQ is often used because it has one huge advantage over the other available queuing systems: it can dynamically create sub-streams. If you have 10 end users and want to grant a certain bandwidth to each for upstream and downstream traffic, you don’t need to specify 10 leaves, one for each user - you just create one PCQ leaf that automatically creates the 10 substreams based on the IP address of the flow. Better yet, if you add an 11th user he automatically gets treated the same. Since in many situations PCQ greatly simplifies QoS configuration, it’s the queueing discipline most widely chosen. However, if you don’t have a situation in which you need dynamic substreams one of the other disciplines may be a better fit.



Not a QoS expert by far but I hope I’m not too wrong in this post.





Use FIFO queuing disciplines if you haven’t a congested link

Use SFQ for congested links to ensure that some connections do not starve

PCQ can be used to dynamically equalize or shape traffic for multiple users, using little administration

Mainly, RED is used on congested links with high data rates. Works well with TCP protocol, but not so well with UDP

isn’t it about the selection process? =)

Thanks so much for all that detailed information!

Greg

Hello,
I have a Mikrotik os 4.0 installed. with the following: LAN Interface Ether2 and WAND Interface Ether1, LAN ip is 192.168.0.1/24 and wan ip is 10.140.30.2 with subnet 255.255.255.240, my gateway is 10.140.30.1.

I have a hotspot configuration with masquerading.

Im using 10computers and my providers assign bandwith of 128kbps up and 512down (shared) but some times is getting to 1M (download) in the night.

I want to set a queue to control the bandwidth for clients, sometime single client can consume the speed and the rest cant do work, because of the download.

Please some one help me out on this.

Thank you

wow this question was asked in 2010.
more than five years ago. a lot has changed since then.
well nobody suggested about the HTB-queue Tree system.
http://wiki.mikrotik.com/wiki/Manual:HTB
try that and you will thank me. :smiley:
Mr. Azfar Hameed khan
MTCNA,MTCTCE