Re: HTB vs CoDel performance
From: Lin Ming <hidden>
Date: 2012-09-18 09:57:36
On Tue, Sep 18, 2012 at 5:45 PM, Eric Dumazet [off-list ref] wrote:
On Tue, 2012-09-18 at 17:28 +0800, Lin Ming wrote:quoted
Hi, I'm testing htb performance on a gigabit router running 2.6.32 kernel. Packet path: PC1 ---> Router LAN port ---> Router WAN port ---> PC2 pfifo_fast: 920Mbps htb: 750Mbps, ~20% drops compared to pfifo_fast htb tc commands as below, # tc qdisc add dev eth10 root handle 20: htb default 1 # tc class add dev eth10 parent 20 classid 20:1 htb prio 2 rate 1024Mbit ceil 1024Mbit burst 1281408b cburst 1281408b The performance drop seems caused by the complex htb enqueue/dequeue algorithm. I had a quick look at CoDel code, seems it does not have so complex data structure as HTB. I'm going to backport CoDel. Is this a good choice? Can I gain similar performance as pfifo_fast?codel is quite different than HTB : It has no rate control, so its very fast. (But it has no prio differentiation as pfifo_fast with its 3 bands) So what are your exact needs ?
I need traffic priority/traffic shaping/rate control ... actually all QoS features on the router. And if I just set the rate to gigabit(no other settings), for example, # tc qdisc add dev eth10 root handle 20: htb default 1 # tc class add dev eth10 parent 20 classid 20:1 htb prio 2 rate 1024Mbit ceil 1024Mbit burst 1281408b cburst 1281408b it should gain similar performance as pfifo_fast. codel has no rate control. So seems I have to find way to optimize htb?