I'm curious what others are doing to achieve high connection rates
-say 10Kconnections/ second.

We're serving objects averaging around 100KB, so 10K/sec is a fully
utilized 1G ethernet card.  I'd like to safely hit 7-800 Mb/sec, but
interrupts are just eating the machine alive.

Before adjusting the ethernet irq to allow interrupts to be delivered
to either core instead of just cpu1, I was hitting a limit right
around 480Mb/sec, cpu1 was taxed out servicing both hardware and
software interrupts.

I adjusted the ethernet card's IRQ to remove it's affinity to cpu1 and
now the limit is around 560Mb/sec before the machine starts dropping
packets.  I did this against the advice that this could cause cpu
cache misses.

machine is: Intel(R) Core(TM)2 Duo CPU     E7200  @ 2.53GHz

os: fedora 10 2.6.27.38-170.2.113.fc10.x86_64 #1 SMP

card: Intel Corporation 82573L Gigabit Ethernet Controller

I've had some ideas on cutting down interrupts:

 - jumbo frames behind haproxy (inside my network)
 - LRO enabled cards (not even sure what this is yet)

I'm not even exactly sure which cards support either of these features yet.

Also, an msi-x card sound like it might reduce interrupts, but I'm
uncertain....might be trying these soonest.

Here's some net kernel settings.
sysctl -A | grep net >  http://pastebin.com/m26e88d16

I also have everything out of /proc/net/nestat graphed for the last
few weeks if anybody wants to see.

Is this the best I can expect out of the card,  the machine and the
kernel?  Are there any amount of tuning that can alleviate this?

Reply via email to