Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Sep 2003 15:12:22 -0700
From:      Luigi Rizzo <rizzo@icir.org>
To:        David J Duchscher <daved@tamu.edu>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Bridging Benchmarks
Message-ID:  <20030916151221.A29339@xorpc.icir.org>
In-Reply-To: <1B25DA5C-E88F-11D7-85AF-000A956E58AC@tamu.edu>; from daved@tamu.edu on Tue, Sep 16, 2003 at 04:45:36PM -0500
References:  <1B25DA5C-E88F-11D7-85AF-000A956E58AC@tamu.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Sep 16, 2003 at 04:45:36PM -0500, David J Duchscher wrote:
> We have been benchmarking FreeBSD configured as a bridge and I thought 
> I would share the data that we have been collecting.  Its a work in 
> progress so more data will show up as try some more Ethernet cards and 
> machine configurations.  Everything is 100Mbps at the moment.  Would be 
> very interested in any thoughts, insights or observations people might 
> have.
> 
>    http://wolf.tamu.edu/~daved/bench-100/

interesting results, thanks for sharing them.
I would like to add a few comments and suggestions:

* as the results with the Gbit card show, the system per se
  is able to work at wire speed at 100Mbit/s, but some cards and/or 
  drivers have bugs which prevent full-speed operation.
  Among these, i ran extensive experiments on the Intel PRO/100, 
  and depending on how you program the card, the maximum transmit
  speed ranges from ~100kpps (with the default driver) to ~120kpps  
  no matter how fast the CPU is. I definitely blame the hardware here.
 
* I have had very good results with cards supported by the 'dc'
  driver (Intel 21143 chipset and various clones) -- wire speed even
  at 64-byte frames. Possibly the 'sis' chips might do the same.
  I know the 'dc' cards are hard to find these days, but i would
  definitely try one of them if possible.
  I would also love to see numbers with the 'rl' cards (Realtek8139,
  most of the cards you find around in the stores) which are
  probably among the slowest ones we have.

* the "latency" curves for some of the cards are quite strange 
  (making me suspect bugs in the drivers or the like).
  How do you define the 'latency', how do you measure it, and do    
  you know if it is affected by changing "options HZ=..." in your
  kernel config file (default is 100, i usually recommend using
  1000) ?

* especially under heavy load (e.g. when using bridge_ipfw=1 and
  largish rulesets), you might want to build a kernel with
  options DEVICE_POLLING and do a 'sysctl kern.polling.enable=1' 
  (see "man polling" for other options you should use).
  It would be great to have the graphs with and without polling,
  and also with/without bridge_ipfw (even with a simple one-line
  firewall config) to get an idea of the overhead.

  The use of polling should prevent the throughput dip after
  the box reaches the its throughput limit visible in some
  of the 'Frame loss' graphs.

  Polling support is available for a number of cards including
  'dc', 'em', 'sis', 'fxp' and possibly a few others.
 
cheers
luigi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030916151221.A29339>