Windows 7 network performance tuning for LAN
- by Hubert Kario
I want to tune Windows 7 TCP stack for speed in a LAN environment.
Bit of background info: I've got a Citrix XenServer set up with Windows 2008R2, Windows 7 and Debian Lenny with Citrix kernel, Windows machines have Tools installed the iperf server process is running on different host, also Debian Lenny. The servers are otherwise idle, tests were repeated few times to confirm results.
While testing with iperf 2008R2 can achieve around 600-700Mbps with no tuning what so ever but I can't find any guide or set of parameters that will make Windows 7 achieve anything over 150Mbps with no change in TCP window size using -w parameter to iperf.
I tried using netsh autotuining to disabled, experimental, normal and highlyrestricted - no change.
Changing congestionprovider doesn't do anything, just as rss and chimney.
Setting all the available settings to same values as on Windows 2008R2 host doesn't help.
To summarize:
Windows 2008R2 default settings: 600-700Mbps
Debian, default settings: 600Mbps
Windows 7 default settings: 120Mbps
Windows 7 default, iperf -w 65536: 400-500Mbps
While the missing 400Mbps in performance I blame on crappy Realtek NIC in the XenServer host (I can do ~980Mbps from my laptop to the iperf server) it doesn't explain why Windows 7 can't achieve good performance without manually tuning window size at the application level.
So, how to tune Windows 7?