Please refer to the Ethernet page for more up to date information. This page is ancient and some love could be used to organize this information a little better under the ethernet section
This information is based off of personal experience and/or information gleaned from the web and mailing lists. It is not necessarily 100% accurate. Corrections are welcome.
Unless otherwise noted, the performance numbers come from using the NIC(s) on a Super-Micro motherboard with 64-bit 100Mhz or 133Mhz PCI busses, 1GB of RAM, and dual 2.8Ghz Xeon processors. A modified version of the pktgen tool was used to send and receive the packets on both interfaces, which were connected by an Ethernet cross-over cable. The modifications to pktgen primarily include adding logic to receive the packets and do accounting (such as detecting dropped packets, etc). A patch that includes the pktgen changes can be found here: candela_2.6.14.patch Packet size is 1514 bytes (default ethernet MTU).
For all types of NICs, the PCI bus is very important, often more important than the CPU or NIC chipset. For true gigabit speeds, you should use at least a 64-bit 66Mhz PCI-X bus or PCI Express. For best performance, use a 64-bit 100 or 133Mhz bus.
Intel, Broadcom, Sky, vodafone and others make high-quality Gigabit ethernet adapters that can saturate one port with about 1Gbps both send and receive.
In general, Intel pro/1000 adapters are excellent performers. Using the pktgen tool configured as mentioned above, 990+Mbps can be generated and received on two separate Ethernet interfaces. On machines with separate PCI busses, a second multi-port NIC may generate an equally impressive amount of traffic. Four and Six port adapters usually have a PCI bridge chip that adds a bit of latency and slightly decreases the performance.
Multiport Broadcom Tg3 NICs may max out at about 750Mbps when driving two ports at top speed, but at least the Silicom multi-port Broadcom NIC works in normal 32/33Mhz PCI slots. The Intel chipset 4-port NICs may only work in 64-bit PCI-X slots.
makes 2, 4, and 6 port Intel pro/1000 and Broadcom tg3 ethernet adapters. These adapters perform equally well to the name-brand Intel boards, but may be slightly cheaper. Silicom's 6-port adapters are the only 6-port ethernet adapters this author has found.
Intel 2 and 4 port pro/1000 NICs are high performers and rock solid. Should you ever find a problem, they have excellent representation on the Linux mailing lists and are quick to resolve questions and problems.
Chelsio makes 4-port GigE NICs and single port 10Gbe NICs. These are rumored to be very high performers.
D-Link makes a 4-port 10/100 NIC (DFE-580TX) which uses the sundance kernel module. While this card works under Linux, this author would dissuade others from purchasing the card, due to the lack of support that D-Link offers for their Linux drivers.
There are two chip families from Marvell for gigabit chips commonly used by other vendors. The older Yukon 1 chips are used in PCI-X adapters. The newer Yukon 2 chips are mostly for PCI-Express. The original sk98lin driver only supports the older Yukon 1 chips, but the vendor does have an updated version that supports both. The vendor driver was written to be portable across Unix versions, and is ugly and therefore was not accepted by the Linux community.
The sk98lin driver is pretty much abandoned now for the newer skge (Yukon 1) and sky2 (Yukon 2) drivers. These drivers are a rewrite based on the idea of only doing what's necessary to run on Linux. These drivers offer better performance, but since they are newer are more more likely to have problems. These drivers are supported by the author and community, problems get resolved.