On Wed, Jul 23, 2008 at 3:59 PM, Kevin Oberman <oberman@es.net> wrote:
The first bottleneck is the interrupts from the NIC. With a generic Intel NIC under Linux, you start to lose a non-trivial number of packets around 700mbps of "normal" traffic because it can't service the interrupts quickly enough.
Most modern high performance network cards support MSI (Message Signaled Interrupts) which generate real interrupts only in an intelligent basis. and only at a controlled rate. Windows, Solaris and FreeBSD have support for MSI and I think Linux does, too. It requires both hardware and software support.
"ethtool -c". Thanks Sargun for putting me on to "I/O Coalescing." But cards like the Intel Pro/1000 have 64k of memory for buffering packets, both in and out. Few have very much more than 64k. 64k means 32k to tx and 32k to rx. Means you darn well better generate an interrupt when you get near 16k so that you don't fill the buffer before the 16k you generated the interrupt for has been cleared. Means you're generating an interrupt at least for every 10 or so 1500 byte packets. Regards, Bill -- William D. Herrin ................ herrin@dirtside.com bill@herrin.us 3005 Crane Dr. ...................... Web: <http://bill.herrin.us/> Falls Church, VA 22042-3004