All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Furniss <andy.furniss@dsl.pipex.com>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] ESFQ not so fair?
Date: Wed, 12 Apr 2006 21:35:58 +0000	[thread overview]
Message-ID: <443D72BE.6030003@dsl.pipex.com> (raw)
In-Reply-To: <443D5449.20706@uznam.net.pl>

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

_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

  reply	other threads:[~2006-04-12 21:35 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-12 19:26 [LARTC] ESFQ not so fair? Michał Margula
2006-04-12 21:35 ` Andy Furniss [this message]
2006-04-12 21:43 ` Michał Margula
2006-04-12 21:52 ` Patrick McHardy
2006-04-12 22:19 ` Andy Furniss
2006-04-12 22:24 ` Andy Furniss
2006-04-13  2:46 ` Corey Hickey
2006-04-13 10:58 ` Michał Margula

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=443D72BE.6030003@dsl.pipex.com \
    --to=andy.furniss@dsl.pipex.com \
    --cc=lartc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.