lartc.org : Linux Advanced Routing & Traffic Control
(Answer) (Category) lartc.org FAQ :
SFQ latency
ISP's who offer high bandwidth connections use modems with big queues. This speeds up bulk traffic (like downloads), but is bad for interactive traffic. When a packet from an interactive session arrives, it has to wait until all other packets are served, before it will be transmitted. This can create high latency. That's the reason why you have to make sure you never receive more data then the modem can handle so the modem queue is empty and can not introduce extra delays.

You can have the same problem if you use the SFQ qdisc on a slow link. The SFQ qdisc has a default queue length of 128 packets. This is too long for slow links. If you have an interactive session, it will take a long time before it will be served. The only thing you can do is making the default queue shorter. The only way you can do this is changing the source :

  • Open the sfq source (/usr/src/linux/net/sched/sch_sfq.c)
  • In about line 91, there is "#define SFQ_DEPTH 128"
  • Change it to "#define SFQ_DEPTH 15" (or whatever queue depth you want)
  • Recompile the kernel and reboot

When you use TBF, you can reduce buffer and limit to minimize delay.
stef.coene@docum.org

[Append to This Answer]
Previous: (Category) Hard decode parameters in tc
Next: (Answer) Rate limiting with iptables
This document is: http://qos.dyndns.org:3389/cgi-bin/fom?file=21
[Search] [Appearance]
This is a Faq-O-Matic 2.719.