Slow SMB transfer from Windows 7 to Server 2012 R2


Recommended Posts

Hi. I'm trying to transfer large files from a Windows 7 machine to a Windows Server 2012 R2 box and I'm only getting around 45 MB/s. The entire network is on gigabit and I know that both the Windows 7 machine and the server are capable of saturating the gigabit link.

 

If I transfer a single large file to the server, I only get around 45 MB/s, but if I start a second transfer while the first is running then the total speed goes to 85-90 MB/s. Then if I start a third transfer, my total speed goes to 110-115 MB/s which is very close to the gigabit speed limit. Slow read/write speeds on either end are not an issue, the storage devices on both ends are capable of read/write speeds in excess of 300 MB/s.

 

Also, if instead of "pushing" the files to the server, I "pull" a single large file to the server (from the Windows 7 machine) then I get around 90-95 MB/s. Anyone know what could be causing this? I need to transfer a lot of large files to the server, but they must be done sequentially not in parallel and pulling them all from the server side is not an option. I need to find a way to get the full speed on individual file transfers coming from the Windows 7 box to the server.

 

The Windows 7 machine has an integrated Intel 82579V Gigabit Ethernet chip. The server has a Realtek Gigabit controller, not sure what chip. Both machines have the latest network drivers installed. I tried changing some of the advanced driver settings on the Windows 7 machine like enabling Adaptive Inter-Frame Spacing and a few others, but they seem to have no effect on transfer speeds. Any suggestions to improve transfer speeds would be greatly appreciated!

Link to comment
Share on other sites

I don't think it's an I/O limitation on either end. The source is an SSD drive that can sustain 300MB/s reads and is rated up to 80,000 IOPs. The target is a 12 disk RAID array that can write at almost 1 GB/s. In the scenario I described above, the 2nd and 3rd transfers I'm starting have the same source and destination as the 1st transfer. I'm trying to figure out why it can saturate the gigabit link with 3 transfers going, but not with just one.

Link to comment
Share on other sites

Try playing with Jumbo Frames to see if that helps with the issue.

Thanks for the suggestion, but I already tried this. I tested with both ends having Jumbo Frames on and off, and there doesn't seem to be much speed difference either way. Besides, I think Jumbo Frames are a bit overrated. I remember messing around with Jumbo Frames a few years back, thinking it would improve network performance. According to Wikipedia, Jumbo Frames are only about 5% more effecient than the standard 1500 byte MTU frames.

Link to comment
Share on other sites

Could you check what version of SMB is being negotiated? (You will need a wireshark capture of the first few packets). SMB 1 is going to perform worse than 2 or 2.1.

SMB 2.1 should be negotiated though.

 

I would guess that it is a multi-threading issue with the SMB implementation on Windows 7. Multiple file transfers should allow better use of the cores.

If parallelisation improves speed you could compress the file into an archive and then split it over the number of cores your Windows 7 machine has, then initiate that many transfers.

 

If you could upgrade the Win7 box to Windows 8.1 (that supports SMB3) you would likely get much faster speeds due to features such as 64K support, multichannel and SMB direct.

Link to comment
Share on other sites

While you can always use wireshark to see what version of smb your using. On 8 or 2k12 you could just use the PowerShell cmd to check

PS C:\> Get-SmbConnection

This will show you what SMB was neg from each client that is connected to a share, so connect to a share on your 2k12 box - then on the 2k12 box in power shell run that and you should see what they connected at. From y client yeah your going to be limited to 2.1

While it could be something odd with 2k12 with 7 clients.. From 7 to 7 smb 2.1 is clearly capable of saturation of the link. I see 100MBps from my storage box running win 7 without much issue. Normally when I upload or download takes long enough for me to notice I see 90ish down and 70ish up to the 7 storage box. And its running in a VM, on older n40l microserver, etc.

This is just 1 stream.

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.