none
Slow Network Write Speeds via SMB & CIFS

    Question

  • 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 Mbps
    Mac OS to Windows Server (CIFS Reading): ~ 80 Mbps
    Windows XP to Windows Server (SMB Writing): ~ 25 Mbps
    Windows XP to Windows Server (SMB Reading): ~ 75 Mbps
    Windows 7 to Windows Server (SMB2 Writing): ~ 90 Mbps
    Windows 7 to Windows Server (SMB2 Reading): ~ 90 Mbps
    Local Write: 200+ MB/s
    Local Read: 400+ MB/s

    Networking 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 switch

    System 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 RAM

    HDD 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: disabled
    Receive Window Auto-Tuning Level: disabled (tried enabled, still slow)
    Add-On Congestion Control Provider: ctcp
    ECN Capability: disabled
    RFC 1323 Timestamps: disabled
    Wednesday, October 21, 2009 1:16 AM

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 by alokw Sunday, November 08, 2009 1:00 AM
    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
    Wednesday, October 21, 2009 1:49 AM
    Moderator
  • 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 by Dilip NaikModerator Wednesday, October 21, 2009 1:52 AM
    • Unmarked as answer by alokw Friday, October 23, 2009 12:33 AM
    Wednesday, October 21, 2009 1:52 AM
    Moderator
  • 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!
    Friday, October 23, 2009 12:38 AM
  • 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 by David Shen Tuesday, October 27, 2009 6:45 AM
    • Unmarked as answer by alokw Sunday, November 08, 2009 1:00 AM
    • Proposed as answer by mmorgan56 Tuesday, November 19, 2013 8:36 PM
    Friday, October 23, 2009 4:21 PM
    Moderator
  • 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 by alokw Sunday, November 08, 2009 1:00 AM
    Sunday, November 08, 2009 1:00 AM
  • Thanks this also worked for me.



    :)
    Sunday, November 08, 2009 4:24 AM
  • This somewhat worked for me, but in the end the following corrected my issue:

     

    Downloaded TCPOptimizer.exe from speedguide.net at http://www.speedguide.net/downloads.php.

    Used Custom settings as follows:

    TCP Receive Window:  65535

    MTU Discovery:  Yes

    Black Hole Detect:  No

    Selective ACKs:  Yes

    Max Duplicate ACKs:  1

    TTL:  64

    Check TCP 1323 Options for Windows Scaling.

    Click Apply and reboot.

    Our issue had to do with Nagle's algorithm.  You can find more info on why it happens online.

    Friday, June 25, 2010 12:45 PM
  • I had a very similar problem and I finally resolved it going inside the BIOS configuration of the server and setting the "CPU C State" parameter to DISABLE.
    Sunday, October 23, 2011 3:27 PM
  • I disabled NETDma and chimney offload state (we have no 10gb links anyways) but i left RSS on (seemed somewhat useful). Anyways this has fixed my OSX Lion clients which were not able to transfer above 25 mb/s, same as the original parent poster. They are now getting high 80s after a reboot. For reference, my global parameters are:

    TCP Global Parameters
    ----------------------------------------------
    Receive-Side Scaling State          : enabled
    Chimney Offload State               : disabled
    NetDMA State                        : disabled
    Direct Cache Acess (DCA)            : disabled
    Receive Window Auto-Tuning Level    : normal
    Add-On Congestion Control Provider  : ctcp
    ECN Capability                      : disabled
    RFC 1323 Timestamps                 : disabled

    so thanks for this tip!

    Tuesday, February 14, 2012 10:20 PM
  • Hi, I had the same problems of access speed to a share server since I changed from Windows Server 2003 STD to Windows Server 2008 STD. All workstations use Windows XP. I tried all the suggestions to disable SMB2 without favorable results. Definitely the performance dropped a lot compared to what it was using Windows Server 2003 STD (same hardware, same network infrastructure). After many hours of testing I realized that disk access was almost permanent in my server configuration (motherboard Intel DP55WG with RAID 1). I checked the with Intel Matrix Storage Console and saw that the data cache hard drive was disabled. After enabling this option, users found that the system respond quickly again. My suggestion is to check the RAID configuration, because in my setup was a noticeable change.

    I hope this helps.
    Wednesday, May 08, 2013 2:17 PM