Windows Server TechCenter >
Windows Server Forums
>
File Services and Storage
>
Slow Network Write Speeds via SMB & CIFS
Slow Network Write Speeds via SMB & CIFS
- We recently purchased a new server running Windows Storage Server 2008 SP2 with the intention of using it primarily as a NAS.Currently, I am doing some beta testing on the server before deploying it for employees, and am noticing rather slow write speeds via SMB & CIFS from Windows XP and Mac OS clients. My Windows 7 testing system (using SMB 2.0 I'm assuming) writes rather quickly. Here are some specifics:File Transfer Benchmarks:Mac OS to Windows Server (CIFS Writing): ~ 25 MbpsMac OS to Windows Server (CIFS Reading): ~ 80 MbpsWindows XP to Windows Server (SMB Writing): ~ 25 MbpsWindows XP to Windows Server (SMB Reading): ~ 75 MbpsWindows 7 to Windows Server (SMB2 Writing): ~ 90 MbpsWindows 7 to Windows Server (SMB2 Reading): ~ 90 MbpsLocal Write: 200+ MB/sLocal Read: 400+ MB/sNetworking Information:- (4) Adapters in a Team (Adaptive Load Balancing) = (2) Intel PRO/1000 EB + (2) Intel PRO/1000 MT- All (4) Adapters are doing TCP & UDP Offloading & Flow Control is Disabled- Adapters are connected to a 100 Mbps 48-Port switch via (4) Cat-6 Cables- Mac OS, Windows XP, and Windows 7 clients are all attached to the same switchSystem Information:- Not in a domain, configured to use WORKGROUP- Windows Storage Server Standard SP2 x64- (2) Quad-core 2.0 Ghz E5405 Xeon Processors- 16 GB DDR-2 RAMHDD Information:- OS Drives: (2) 250 GB SATA Drives in RAID 1 on X7DBE Motherboard = 232 GB (177 GB Free)- NAS Drives: (10) 2 TB SATA Drives in RAID 6 w/ Hotspare on Areca 1680iX-16 = 12.7 TB (11.9 TB Free)TCP Global Parameters:Receive-Side Scaling State: disabled (tried enabled, still slow)Chimney Offload State: disabledReceive Window Auto-Tuning Level: disabled (tried enabled, still slow)Add-On Congestion Control Provider: ctcpECN Capability: disabledRFC 1323 Timestamps: disabled
Answers
- Well... after days and days of research and desperation, I have finally figured it out.
I came across the following KB article, and without knowing much about it, out of alternative ideas, on a whim I decided to disable NetDMA.
http://support.microsoft.com/kb/951037
Imagine my surprise and joy, when after what was probably my 30th restart in 3 weeks, file transfers from OS X to WSS2008 hit 80+ Mbps!!!
Hope this might help someone in the future. Here are the directions from the site listed above.
To enable or disable NetDMA, follow these steps:
1. Click Start, click Run, type regedit, and then click OK.
2. Locate the following registry subkey, and then click it:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. Double-click the EnableTCPA registry entry.Note If this registry entry does not exist, right-click Parameters, point to New, click DWORD Value, type EnableTCPA, and then press ENTER.
4. To enable NetDMA, type 1 in the Value data box, and then click OK.
5. To disable NetDMA, type 0 in the Value data box, and then click OK.
6. If the EnableTCPA registry entry does not exist, enable the NetDMA functionality.
Thanks for all your help and support.- Marked As Answer byalokw Sunday, November 08, 2009 1:00 AM
All Replies
- File copy optimization appears to be an art and not a science
See this blog http://blogs.technet.com/markrussinovich/archive/2008/02/04/2826167.aspx
Whether you push the file or pull the file also seems to matter
www.msftmvp.com and VHD tools at www.VMUtil.com - And see this thread
http://social.technet.microsoft.com/Forums/en-US/winserverfiles/thread/111d8f9c-c497-4610-b7fd-94addafa9452
eseutil is your friend to do a quick file copy
www.msftmvp.com and VHD tools at www.VMUtil.com- Marked As Answer byDilip NaikMVP, ModeratorWednesday, October 21, 2009 1:52 AM
- Unmarked As Answer byalokw Friday, October 23, 2009 12:33 AM
Whether you push the file or pull the file also seems to matter
You're right about this... after doing more testing and mapping a share from a Mac OS X client onto the Windows 2008 Server, and copying a large file on the Windows 2008 side, from my Mac, I experienced write speeds of about 85 Mbps "pulling," but still only 25 Mbps "pushing."Thanks for the links - very interesting reading indeed, but I really need to get this system up to par for all clients, without any unusual utilities. THe server will be expected to be operational in a production environment very soon, and employees won't be happy with its current sub-par performance.I've continued testing by disabling SMB 2.0, disabling the "team of adapters," disabling IPv6, and a few other things... all with no avail. Setting up a NFS share yielded the same results... roughly 25 Mbps write speeds from clients to the server.Perhaps also worth mentioning as my further belief that this is software related.... the old Xserve that this system is supposed to be replacing doesn't see any of these speed and performance issues from Windows XP, Vista, or Mac OS clients.Are there any other suggestions you all might have to get this thing up to snuff?Thanks!- I have seen a few instances of flaky NICs or TCP Chimneys, but I agree this is software
I also strongly believe that this has nothing to with SMB 2.0. This issue existed in the days before SMB 2.0 shipped, and I am also familiar with the internal details of both SMB1 and SMB2 code.
The problem really is that the caching algorithm is not friendly to large files. The fact that there are no knobs to twist and turn to change the caching behavior does not help either.
I recommend eseutil because it is free and also because it changes the caching behavior by opening the file in a way that forces the cache manager to effectively twist and turn a knob
There really is not much else to do - you can affect the cache by running something else that fills it up. But that will not be deterministic
I strongly urge you to put in a Service Request with Microsoft if you can.
www.msftmvp.com and VHD tools at www.VMUtil.com- Marked As Answer byDavid Shen - MSFTMSFT, ModeratorTuesday, October 27, 2009 6:45 AM
- Unmarked As Answer byalokw Sunday, November 08, 2009 1:00 AM
- Well... after days and days of research and desperation, I have finally figured it out.
I came across the following KB article, and without knowing much about it, out of alternative ideas, on a whim I decided to disable NetDMA.
http://support.microsoft.com/kb/951037
Imagine my surprise and joy, when after what was probably my 30th restart in 3 weeks, file transfers from OS X to WSS2008 hit 80+ Mbps!!!
Hope this might help someone in the future. Here are the directions from the site listed above.
To enable or disable NetDMA, follow these steps:
1. Click Start, click Run, type regedit, and then click OK.
2. Locate the following registry subkey, and then click it:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. Double-click the EnableTCPA registry entry.Note If this registry entry does not exist, right-click Parameters, point to New, click DWORD Value, type EnableTCPA, and then press ENTER.
4. To enable NetDMA, type 1 in the Value data box, and then click OK.
5. To disable NetDMA, type 0 in the Value data box, and then click OK.
6. If the EnableTCPA registry entry does not exist, enable the NetDMA functionality.
Thanks for all your help and support.- Marked As Answer byalokw Sunday, November 08, 2009 1:00 AM
- Thanks this also worked for me.
:)

