[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