Small packets handling : LVS-DR vs LVS-NAT
pmueller at sidestep.com
Tue May 6 20:09:31 BST 2003
> 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?
More information about the lvs-users