Gigabit Adapters Only Transfering at 100mb/s
I've got several machines that have gigabit ethernet adapters in them. Unfortunately, none of them will transfer at more than (what appears to be) 100mb/s when running Linux. If I switch to Windows (some are dual-boot), the exact same hardware appears to work at full speed.
Here's my test setup:
System A: Workstation which dual boots between Windows XP & Gentoo (2.6.9-nitro2 kernel). Uses onboard Via Velocity Gigabit adapter.
System B: Server which runs Ubuntu/Debian Linux (2.6.8 kernel). Uses a PCI Neatgear card with a Realtek 8169 gigabit chipset on it.
System C: Server which runs Windows XP. Uses a PCI Netgear card with a Realtek 8169 gigabit chipset on it (identical to system 'B').
I've created a 100mb file to use when testing transfer speeds like so:
dd if=/dev/urandom of=/file-100mb bs=1M count=100
When transfering from System A (LINUX) to System B (LINUX), it takes 19 seconds.
When transfering from System A (Windows) to System B (LINUX), it takes 19 seconds.
When transfering from System A (LINUX) to System C (Windows), it takes 19 seconds.
When transfering from System A (Windows) to System C (Windows), it takes 3 seconds.
When transfering from System B (LINUX) to System C (Windows), it takes 19 seconds.
Obviously, anytime a Linux machine is involved, 19 seconds is the fastest transfer I'm going to get. For the Linux to Linux transfers, I've used FTP, SMB, and NFS. Each is pretty close speedwise, I just wanted to make sure I wasn't seeing a protocol problem with Linux rather than a hardware/driver problem.
I've run ethtool against each of the Linux servers, but it only works with the Via Velocity chipset. On that machine, though, it recognizes that the card is capable of 1000mb/s, but that it is only running at 100mb/s.
Here's another wierd thing: the switch shows a 1000mb/s connection for both Linux & Windows, even though Linux says it's only running at 100mb/s. (It has different color LEDs for 1000mb and 100mb connections)
I considered that I might have a driver problem, but I'm seeing the same thing with two completely different network cards.
I thought maybe it was something hinky with the distro setup, but two different distros are behaving exactly the same way.
I then thought maybe it was a problem with the cables, but they work just fine when I transfer from Windows to Windows.
I also tried replacing the switch with a different switch from another manufacturer just to be sure: same results.
I've attempted to force the speed with mii-tool and ethtool, but neither can set these cards.
What am I missing here? I know the hardware 'works', because a simple reboot to Windows gives me a huge boost in speed with the exact same hardware setup.
Has anybody else seen this problem? Am I missing something obvious?
|