The Network
- Windows Server 2008
- Dell Gigabit Managed Switch
- PCs running Vista SP2 with gigabit network cards
The Story
The 2008 Windows server is new as of a couple months ago and knowing that the PCs should now negotiate using SMB2 which removes the transfer bottleneck at the OS level I expected close to gigabit transfer speeds for large file copies between machines.
Vista measures file transfers in Megabytes/second. A gigabit network can theoretically transfer at 125MB/s. Let's say there's 15% overhead. So a realistic acceptable transfer rate is around 105MB/s.
I decided to dig into this today as I was copying large iso's from my local pc to the server and getting 9-12 MB/s. Unacceptable given the technology employed.
Before digging into jumbo frames, hard setting the NIC speeds, etc. I decided to do the simple thing and update NIC drivers on the PC. They went from the OS provided 2006 drivers to the manufacturer provided June 2009 drivers. Guess what. An amazing thing happened. The next copy of a test iso transferred at 103MB/s. Freakin' sweet. We subsequently went around to the other 25 machines in the office and upgraded all of their drivers. Then it gets interesting.
The copy test started to be inconsistent. We'd get 100MB/s on one machine and 65 on another. Then a machine that was getting 100 would get 12. These were simple tests but there were NOT other large file transfers happening that would cause a bottleneck at the hard drive level.
So then we set one of the PCs to hard negotiate at gigabit full duplex. It started copying at a consistent 80-90MB/s. This leads me to believe that there's something off in the connection negotiation either between the server and the PC, the server and the switch, or some other combination of the three. There is a firmware and driver update for the server NIC which we'll install tonight, but they currently aren't nearly as old as the client drivers were.
The Question
OK, that's the long story for a really simple question. How do we track negotiated speeds for the clients on the network? Is there a software tool that can go out and aggregate the data for us? Can it only be done with file transfer test?
If we can see what they're connecting at then maybe we can track down which brand of NIC is bad, if the switch is the problem, if the server is the problem, etc...
Thanks.
If you have a managed switch, then you should be able to see the link speed and duplex that was negotiated on the switch.
You could also collect the data with a script that uses wmi. (example)
Either way, if anything negotiates to 100MB/half duplex you probably have a problem, you shouldn't see a 100/half duplex link on a good network.
You may also need to check your wiring. It is possible that your cabling doesn't quite meet the requirements needed for the link to stay at the desired speed.
Your managed switch should be able to tell you all the information you want. The SNMP MIB for the Dell Powerconnect Switches should include the link status (up/down), link speed, and link duplex. It will also have things like tx/rx errors which would help you track down bad NIC's, cables, etc.
You didn't mention what series switch you have but here are two MIB's
ftp://ftp.dell.com/network/PowerConnect54xx_MIBs_A00.zip
ftp://ftp.dell.com/network/PowerConnect34xx_MIBs_A01.zip
You should be able to monitor and track all of these things with something like Nagios or Cacti.
We have a script that runs daily on our managed switch reports on the speed negotiated at each port. That file is saved to a file server and also published in the IT Operations Wiki every day. It also notes a lot of other info about each switch port but that's not relevent to this answer.
It's also worth looking at something like PRTG, there is a free version.