Dropped packets..

  • Hey there,
    I have a question about packets dropping using traffic shaper.
    I have a 25Mbit internet connection, and have my LAN shaper setup like this:

    LAN - CBQ - nothing assigned to BW
      qLink - default queue - 20% BW (this value could be anything)
      qInternet - 25Mbit BW - borrow=off
          qACK - priority 4 - 40% BW - borrow=on
          qHigh - priority 3 - 30% BW - borrow=on
          qMed - priority 2 - 20% BW - borrow=on
          qLow - priority 1 - 10% BW - borrow=on

    I route entire hosts on my LAN into these queues using LAN rules… that's working fine.
    For example, in the low queue I've routed two VMs. One handles torrent traffic, the other usenet traffic.

    My issue is the "borrow" setting on qInternet.

    Here's what I do:
    1. make sure no hosts on my LAN are using the internet, this leaves my full 25Mbit open for use.
    2. start a download via usenet which gets routed to the low queue.
    3. watch the queues. LAN traffic in my low queue is getting dropped like crazy giving me only about 500 - 600KB download speed (about 4.8Mbit) which is about 20% of my 25Mbit. It's my understanding that with the "borrow from other queues" turned on this should not happen. The other queues are sitting at zero, yet the Low queue is dropping packets.

    4. So I tried turning borrow ON in the qInternet queue and bamn - my download went from 4.8Mbit to 24Mbit and no more drops on the Low queue. This doesn't make sense to me though, it seems like I've told qInternet that it can borrow from qLink (which is my local network).

    When borrow is turned on in qInternet to get the download to go faster, it seems like the priorities aren't working anymore. Yes, the traffic gets put in the right queues, but if qInternet thinks it can have up to my Gigabit LAN speeds, then it's going to try to share that amongst all its children and not just the 25Mbit that it actually has.

    Does this make sense to anyone?

    The only other option I have turned on in the children queues is "Explicit Congestion Detection", mostly because it was on by default so I left it.

    Anyone care to share a little insight?

    Thank you!

  • You won't know about your priorities working or not working unless you set up a test where one of the higher priority queues is running enough traffic to shove the lower priority queue down, adequately continuously and for a long enough period that you can see what is or is not happening.

    It may be that "borrow must be on" for any of the children to borrow, rather than "it's trying to share your qlink." If qLink is not borrow=on, I think the borrow=on setting on qInternet does not provide it with any access to your 1GB LAN/qLink. You could explicitly set qLink to borrow=off and see what happens, but I think that is the default - but I'm also still very much in the place where the depths of what I don't know about the shaper exceed what I do know by a huge margin.

    You could also try setting qAck to borrow=off and see if you lose about 40% of your download on qLow, I guess. But that may not be the way borrow actually works. It would be a simpler experiment to set up, though.

Log in to reply