Windows 7 File Transfer Speed over Gigabit is slow

I've got windows 7 pro running on my file server and my main desktop. Each has a gigabit network connection and I'm connected to a gigabit switch. However, when trying to copy some large files, it's running pretty slow at a measly 12-15 MB/s
The data is coming from a 7200RPM SATA drive (which I think should be good for almost 150MB/s) and going to a Drobo on the server connected via FireWire 800, so I can't think of any bottlenecks I might have in the hardware. But TeraCopy still says it's only going at 12-15 MB/s

What else could be wrong here?


Solution 1:

I hate to say this is Windows voodoo. I've seen improvements from disabling firewalls/anti-virus to using RAM disks, changing gigabit nics from PCI to PCIe, using faster switches, jumbo frames, flow control and shorter & better cables.

Funny when I download files from a samba box I seem to get better performance, but still not better than 15% utilization.

I did a quick search and found this site. I hadn't tried these settings yet.

To more directly address speed, in Vista and Windows 7, Microsoft made changes to the CopyFile API to increase performance. I don't know if TeraCopy uses it, but I know RoboCopy does. Perhaps running the test with RoboCopy could bring better performance.

Also, my best transfers were using PCIe cards going from a RAM disk to a RAM disk with my AV off, but still I didn't get more than about 20-25%.

Perhaps some of these tips will work for you.

Solution 2:

After needing to replace my dodgy old laptop I had to copy several thousand files across a network cable to my new PC - I put up with the days it took to copy as I needed to get back to work so didn't have too much time to try and play.

Yesterday I had to check 3.4 gig of files (tens of 1000's of small ones) back into a subversion repository - Painful? Hell yeah!

So this morning I decided to get this sorted - After much looking round the web I found an article which mentioned the one tiny little thing which solved everything!! The link is at the bottom of this comment - Read it AFTER you've seen my results.

Info: 192.168.0.79 is my top of the range gaming PC and 192.168.0.151 is our office file server

Step 1 - Run iPerf (Can be found here http://linhost.info/2010/02/iperf-on-windows/ ) - I ran this in dual mode so you could see our server was pretty quick to start with

C:\Users\Martin\Downloads>iperf -c 192.168.0.151 -w 64k -d
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 192.168.0.151, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[188] local 192.168.0.79 port 61072 connected with 192.168.0.151 port 5001
[212] local 192.168.0.79 port 5001 connected with 192.168.0.151 port 63505
[ ID] Interval       Transfer     Bandwidth
[212]  0.0-10.0 sec   112 MBytes  93.7 Mbits/sec
[188]  0.0-14.1 sec   240 KBytes   140 Kbits/sec

Next, AND I WAS GOBSMAKED after everything I've been trying for so long - Enable a 9k Jumb Frame on the Network Cards configuration and run the test again.

The Duplex setting was set to 100Mb full duplex after something else I'd tried so the transfer speed below was 9Mbits less than the setting of the network card - NOT BAD!

C:\Users\Martin\Downloads>iperf -c 192.168.0.151 -w 64k -d
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 192.168.0.151, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[196] local 192.168.0.79 port 61112 connected with 192.168.0.151 port 5001
[212] local 192.168.0.79 port 5001 connected with 192.168.0.151 port 63511
[ ID] Interval       Transfer     Bandwidth
[212]  0.0-10.0 sec   109 MBytes  91.6 Mbits/sec
[196]  0.0-10.0 sec   110 MBytes  91.7 Mbits/sec

C:\Users\Martin\Downloads>

One final tweek - I removed the duplex setting and set it back to "Auto" and ran the test again

C:\Users\Martin\Downloads>iperf -c 192.168.0.151 -w 64k -d
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 192.168.0.151, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[192] local 192.168.0.79 port 61169 connected with 192.168.0.151 port 5001
[216] local 192.168.0.79 port 5001 connected with 192.168.0.151 port 63525
[ ID] Interval       Transfer     Bandwidth
[216]  0.0-10.0 sec   674 MBytes   564 Mbits/sec
[192]  0.0-10.0 sec   787 MBytes   659 Mbits/sec

BOOM!!! A Massive increase - Hope this works for everyone

Martin

Original post that helped... http://www.hanselman.com/blog/WiringTheHouseForAHomeNetworkPart5GigabitThroughputAndVista.aspx

Solution 3:

I'm running Windows 7 using Parallels/Boot Camp on a 3.4 Ghz Quad Core i7 with 16 gigs of RAM. Network transfer speeds were between 2 - 60k per second, until I followed the advice in a Cake404 post regarding Broadcom network cards.

After turning off Ethernet@WireSpeed and disabling "Large Send Offload" options (under the configuration settings for the network card), my transfer speeds went up to multiple megabytes per second.