Small packets handling : LVS-DR vs LVS-NAT

Peter Mueller pmueller at sidestep.com
Tue May 6 20:09:31 BST 2003


Hello Nicolas,

> I was using eepro100 driver and successfully changed to intel e100
> driver. Using this driver gives the opportunity to use some specific
> features called "CPU Cycle Saver": the adapter does not generate an
> interrupt for every frame it receives. Instead, it waits until it
> receives N frames before generating an interrupt.
> As this LVS setup is mainly handling small packets, I tried
> different values for N and noticed that it can push back limitations. 
> At least, it can now sustain 4000 inbound/4000 outbound packets/s.

I have done some tests recently with the stock 2.4.20 eepro100 driver and
Intel dual-port cards.  I was able to get 33,000 interrupts/sec with or
without iptables rules.  I was going to try the "NAPI" type driver like you
apparently have done but I didn't see the need to yet.  I was using VALinux
2230's (dual 733mhz) for this test.  With large packets (L2 - 1450) load was
~0 and network saturation was reached.  With smaller packets (L2 - 200) load
was ~.1 and burst to ~.3 occasionally...

I didn't try the e100 driver, the main reason was because I have heard so
many mixed reports; nothing really positive!  Maybe you'd like to try NAPI
for eepro100 - ftp://robur.slu.se/pub/Linux/net-development/NAPI/.  (Note :
NAPI doesn't seem to be updated for 2.4.20).  You might also want to try
Donald Becker's eepro100 (http://www.scyld.com).

> Also, I don't know much about hardware design, but there may be some
> bus (DMA?) limitations when using 2 or more NICs...

The 32-bit 33mhz PCI bus shouldn't be limited until you start talking about
speeds much larger than 100mbit/sec.  When this happens buy $150 dual-port
cards from Intel which have 64-bit 66mhz capability and plug those into your
64-bit slots :).  If you don't have these slots well hey you're approaching
1 gigabit network so it seems reasonable to get one :).

> As you may have understood :), it is not clear to me where is the
> bottleneck: NIC ? IRQ ? LVS-type ? Bus transfers ? Connexion table ?
> Im' a bit confused and I would greatly appreciate any help to figure
> out which assumption is correct so to find the appropriate solution.

Maybe I missed something, but how do you know you are at a bottleneck?  Are
you using testlvs (available on Julian's page) or apache bench or something
similar?  BTW, this may be a stupid question but you aren't running into
strange ethernet errors (carrier, error, etc) as reported by ifconfig?  Also
what model eepro100 are you running?

Peter


More information about the lvs-users mailing list