[LARTC] ESFQ not so fair?

Andy Furniss andy.furniss at dsl.pipex.com
Wed Apr 12 23:35:58 CEST 2006


Michał Margula wrote:
> Hello!
> 
>     I am using since yesterday ESFQ instead of N HTB queues. It mostly 
> works OK, but when somebody is using one single sesion (for example 
> downloading file via FTP), it gets weird speed. For example it is 20 
> kilobytes pres second, then drops down to 9, then 20 again, and then 
> slowly to 0 and stops. But when using download accelererator of some 
> kind or bittorrent client which uses many connections, speed seems to be 
> stable.
> 
> I am using esfq that way:
> 
>     qdisc add dev eth0 parent 1:4 handle 4:0 esfq perturb 600 hash 
> fwmark divisor 13
>     qdisc add dev eth1 parent 1:2 handle 2:0 esfq perturb 600 hash dst 
> divisor 13
> 
> On eth0 every IP is marked with different value by IPMARK module. On 
> eth1 it is not necessary so I use dst hash. I have more values than 2^13 
> so I can't use direct hash.
> 
> Any ideas? Is it possible to use bigger divisor or algorithm is not 
> designed to deal with bigger hash? Any ideas will be appreciated!
> 


Corey Hickey changed his esfq to use jhash for dst/src/fw - copy of his 
announce below.

Andy.

Corey Hickey wrote:
 > In a recent thread on this list, Robert Kurjata provided me a patch 
to add
 > hashing by iptables mark to the Linux 2.4 version of ESFQ. Thanks to that
 > contribution, I was able to easily add support to the 2.6 port I 
maintain.
 >
 > I found out, however, that the existing hash algorithm results in a 
lot of
 > colllisions when the range of hashed values is small. The purturbation
 > spreads the collisions out a little, but the result still wasn't very
 > fair, especially when hashing only three fwmark values: 0, 1 and 2.
 >
 > So, I wrote an alternative hash function. It's quite simple, and as long
 > as the range of input values is smaller than the hash table (default 
1024,
 > up to 16384), collisions will not happen at all. See the updated README
 > file for more details.
 >
 > Home page:
 > http://fatooh.org/esfq-2.6/
 >
 > Direct URL:
 > http://fatooh.org/esfq-2.6/esfq-2.6.13.tar.gz
 >
 > README (also available in the tar.gz):
 > http://fatooh.org/esfq-2.6/current/README
 >
 > Try it out, have fun, and if you find a bug or have a suggestion please
 > send me an email.
 >
 > -Corey



More information about the LARTC mailing list