Troubleshooting Slow Read/ Transfer Speeds for a Windows Home Server
After recommending WHS to a friend I got a note saying it was running really slow for pulling data off the server, even though writing data was fine. As this friend is not so technically apt, I decided to setup quick test machines, one running Vista 64 the other WHS. Both were using a Dell Perc 5/i raid card and two 500GB 7200rpm Western digital drives in raid 0 (I would never do this in practice, but these were solely built for test purposes.)
The switch I was using is a Dell PowerConnect 2708 which is an 8 port switch with management that can support link aggregation, as well as other cool features. No, it is not a super fast switch, but can handle two clients without issue. Cabling was CAT6. Both clients were using onboard Realtek gigabit controllers connected to the switch, however the links were not using aggregation.
I was very surprised to see the results at default settings…
First off, hard disks typically read faster than they write, so seeing almost five times the write performance was a big red flag. So I started to troubleshoot:
- Could it be the drives? Since there is no aggregation, the max theoretical bandwidth the GigE ports would give me is 125MB/s. The storage subsystems of both PC’s can easily read/write in the 150-200MB/s range. That can’t be the issue.
- Doing the quick math 100Mbit/s = 12.5MBytes/s theoretical. Subtract 30% and that’s where we are at. 30% is usually very high for Ethernet overhead which generally people use 10% to 20% depending on how conservative they are. That being said, the connection is to a shared windows folder mapped as a network drive, not as an iSCSI target, so 30% overhead may be realistic. It sure looks like a 100Mbps line vs a 1.0Gbps line.
Testing the hypothesis from #2, I manually went into the device properties for all four NICs and set transmit speed from “auto negotiate” to “1.0Gbps full duplex” and observed a nice bump in performance:
While ATTO was running I was watching the lights on the NICs and realized that one had an LED activity light was blinking fast, and the other sporadically for each pair. With that thought in mind, I physically disabled one link on the client and the WHS (i.e. pulled the CAT6 out). The results below are fairly impressive:
The graph above isn’t necessarily blazing fast transfer speeds, however, for a WHS shared folder to Vista client using one GigE port, this is a significant improvement. In the future I may update this with the link aggregation results.
For anyone that is having issues with WHS read speeds and Realtek controllers, I would therefore suggest manually setting 1.0Gbps, turning off auto negotiate, and only plugging in one set of wires if you have dual NICs but are not bonding them.