locked
[Forum FAQ] Troubleshooting Network File Copy Slowness RRS feed

  • General discussion

  • 1. Introduction


    The Server Message Block (SMB) Protocol is a network file sharing protocol, and as implemented in Microsoft Windows is known as Microsoft SMB Protocol. The set of message packets that defines a particular version of the protocol is called a dialect. The Common Internet File System (CIFS) Protocol is a dialect of SMB. Both SMB and CIFS are also available on VMS, several versions of Unix, and other operating systems.


    Microsoft SMB Protocol and CIFS Protocol Overview

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa365233(v=vs.85).aspx


    Server Message Block overview

    http://technet.microsoft.com/en-us/library/hh831795.aspx


    1.1
    SMB Versions and Negotiated Versions


    - Thanks for the Jose Barreto's Blog


    There are several different versions of SMB used by Windows operating systems:

     

    • CIFS – The ancient version of SMB that was part of Microsoft Windows NT 4.0 in 1996. SMB1 supersedes this version.
    • SMB 1.0 (or SMB1) – The version used in Windows 2000, Windows XP, Windows Server 2003 and Windows Server 2003 R2
    • SMB 2.0 (technically SMB2 version 2.002) – The version used in Windows Vista (SP1 or later) and Windows Server 2008 (or any SP)
    • SMB 2.1 ((technically SMB2 version 2.1) – The version used in Windows 7 (or any SP) and Windows Server 2008 R2 (or any SP)
    • SMB 3.0 (or SMB3) – The version used in Windows 8 and Windows Server 2012
    • SMB 3.02 (or SMB3) – The version used in Windows 8.1 and Windows Server 2012 R2

     

    Windows NT is no longer supported, so CIFS is definitely out. Windows Server 2003 R2 with a current service pack is under Extended Support, so SMB1 is still around for a little while. SMB 2.x in Windows Server 2008 and Windows Server 2008 R2 are under Mainstream Support until 2015. You can find the most current information on the support lifecycle page for Windows Server. The information is subject to the Microsoft Policy Disclaimer and Change Notice.  You can use the support pages to also find support policy information for Windows XP, Windows Vista, Windows 7 and Windows 8.

     

    In Windows 8.1 and Windows Server 2012 R2, we introduced the option to completely disable CIFS/SMB1 support, including the actual removal of the related binaries. While this is not the default configuration, we recommend disabling this older version of the protocol in scenarios where it’s not useful, like Hyper-V over SMB. You can find details about this new option in item 7 of this blog post: What’s new in SMB PowerShell in Windows Server 2012 R2.

     

    Negotiated Versions

     

    Here’s a table to help you understand what version you will end up using, depending on what Windows version is running as the SMB client and what version of Windows is running as the SMB server:

    OS

    Windows 8.1  WS 2012 R2

    Windows 8  WS 2012

    Windows 7  WS 2008 R2

    Windows Vista  WS 2008

    Previous versions

    Windows 8.1 WS 2012 R2

    SMB 3.02

    SMB 3.0

    SMB 2.1

    SMB 2.0

    SMB 1.0

    Windows 8 WS 2012

    SMB 3.0

    SMB 3.0

    SMB 2.1

    SMB 2.0

    SMB 1.0

    Windows 7 WS 2008 R2

    SMB 2.1

    SMB 2.1

    SMB 2.1

    SMB 2.0

    SMB 1.0

    Windows Vista WS 2008

    SMB 2.0

    SMB 2.0

    SMB 2.0

    SMB 2.0

    SMB 1.0

    Previous versions

    SMB 1.0

    SMB 1.0

    SMB 1.0

    SMB 1.0

    SMB 1.0

    * WS = Windows Server

     

    1.2 Check, Enable and Disable SMB Versions in Windows operating systems

     

    In Windows 8 or Windows Server 2012 and later, there is a new PowerShell cmdlet that can easily tell you what version of SMB the client has negotiated with the File Server. You simply access a remote file server (or create a new mapping to it) and use Get-SmbConnection.

    To enable and disable SMBv1, SMBv2, and SMBv3 in Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012, please follow the steps in the article below.

    Warning: We do not recommend that you disable SMBv2 or SMBv3. Disable SMBv2 or SMBv3 only as a temporary troubleshooting measure. Do not leave SMBv2 or SMBv3 disabled.


    http://support.microsoft.com/kb/2696547


    1.3 Features and Capabilities

     

    - Thanks for the Jose Barreto's Blog


    Here’s a very short summary of what changed with each version of SMB:

     

    • From SMB 1.0 to SMB 2.0 - The first major redesign of SMB

      • Increased file sharing scalability
      • Improved performance

        • Request compounding
        • Asynchronous operations
        • Larger reads/writes

      • More secure and robust

        • Small command set
        • Signing now uses HMAC SHA-256 instead of MD5
        • SMB2 durability

     

    • From SMB 2.0 to SMB 2.1

      • File leasing improvements
      • Large MTU support
      • BranchCache

     

    • From SMB 2.1 to SMB 3.0

      • Availability

        • SMB Transparent Failover
        • SMB Witness
        • SMB Multichannel

      • Performance

        • SMB Scale-Out
        • SMB Direct (SMB 3.0 over RDMA)
        • SMB Multichannel
        • Directory Leasing
        • BranchCache V2

      • Backup

        • VSS for Remote File Shares

      • Security

        • SMB Encryption using AES-CCM (Optional)
        • Signing now uses AES-CMAC

      • Management

        • SMB PowerShell
        • Improved Performance Counters
        • Improved Eventing

     

    • From SMB 3.0 to SMB 3.02

      • Automatic rebalancing of Scale-Out File Server clients
      • Improved performance of SMB Direct (SMB over RDMA)
      • Support for multiple SMB instances on a Scale-Out File Server

     

    You can get additional details on the SMB 2.0 improvements listed above at http://blogs.technet.com/b/josebda/archive/2008/12/09/smb2-a-complete-redesign-of-the-main-remote-file-protocol-for-windows.aspx

     

    You can get additional details on the SMB 3.0 improvements listed above at http://blogs.technet.com/b/josebda/archive/2012/05/03/updated-links-on-windows-server-2012-file-server-and-smb-3-0.aspx

     

    You can get additional details on the SMB 3.02 improvements in Windows Server 2012 R2 at http://technet.microsoft.com/en-us/library/hh831474.aspx

     

    1.4 Related Registry Keys

     

    • HKLM\SYSTEM\CurrentControlSet\Services\MrxSmb\Parameters\

     

    • DeferredOpensEnabled – Indicates whether the Redirector can defer opens for certain cases where the file does not really need to be opened, such as for certain delete requests and adjusting file attributes. This defaults to true and is stored in the Redirector variable MRxSmbDeferredOpensEnabled.

     

    • OplocksDisabled – Whether the Redirector should not request oplocks, this defaults to false (the Redirector will request oplocks) and is stored in the variable MrxSmbOplocksDisabled.

     

    • CscEnabled – Whether Client Side Caching is enabled. This value defaults to true and stored in MRxSmbIsCscEnabled. It is used to determine whether to execute CSC operations when called. If CSC is enabled, several other parameters controlling CSC behavior are checked, such as CscEnabledDCON, CscEnableTransitionByDefault, and CscEnableAutoDial. CSC will be discussed in depth in its own module, so will be only mentioned in this module when it is necessary to understanding the operation of the Redirector.

     

    • DisableShadowLoopback – Whether to disable the behavior of the Redirector getting a handle to loopback opens (opens on the same machine) so that it can shortcut the network path to the resource and just access local files locally. Shadow opens are enabled by default, and this registry value can be used to turn them off. It is stored in the global Redirector variable RxSmbDisableShadowLoopback.

     

    • IgnoreBindingOrder – Controls whether the Redirector should use the binding order specified in the registry and controlled by the Network Connections UI, or ignore this order when choosing a transport provider to provide a connection to the server. By default the Redirector will ignore the binding order and can use any transport. The results of this setting are stored in the variable MRxSmbObeyBindingOrder.

     

    • HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\

     

    • Security Signature settings – The RequireSecuritySignature setting is stored in MRxSmbSecuritySignaturesRequired, EnableSecuritySignature in MRxSmbSecuritySignaturesEnabled, RequireExtendedSignature in MRxSmbExtendedSignaturesRequired, and EnableExtendedSignature in MRxSmbExtendedSignaturesEnabled. Note that the Extended Security Signatures assume the regular security signatures are enabled, so those settings are adjusted if necessary based on the extended settings. If extended signatures are required, regular signatures have to be required.

     

    • EnablePlainTextPassword – Support for using plain text passwords can be turned on using this key. They are disabled by default.

     

    • OffLineFileTimeoutIntervalInSeconds – Used to set the expiration time for timing out an Exchange (discussed later) when the exchange is accessing an offline file. This value defaults to 1000 seconds, but can be changed in the registry and is stored in the global Redirector variable OffLineFileTimeoutInterval

     

    • SessTimeout – This is the amount of time the client waits for the server to respond to an outstanding request. The default value is 60 seconds (Windows Vista). When the client does not receive the response to a request before the Request Expiration Timer expires, it will reset the connection because the operation is considered blocked. In Windows 8, the request expiration timer for the SMB 2 Negotiate is set to a smaller value, typically under 20 seconds, so that if a node of a continuously available (CA) cluster server is not responding, the SMB 3.0 client can expedite failover to the other node.

     

    • ExtendedSessTimeout – Stored in the ExtendedSessTimeoutInterval variable, this value is used to extend the timeout on exchanges for servers that require an extended session timeout as listed in the ServersWithExtendedSessTimeout key. These are third party servers that handle SMB sessions with different processes and vary dramatically on the time required to process SMB requests. The default value is 1000 seconds. If the client is running at least Windows 7 and ExtendedSessTimeout is not configured (By Default), the timeout is extended to four times the value of SessTimeout (4 * SessTimeout).

     

    • MaxNumOfExchangesForPipelineReadWrite – This value is used to determine the maximum number of write exchanges that can be pipelined to a server. The default is 8 and the value is stored in the variable MaxNumOfExchangesForPipelineReadWrite.

     

    • Win9xSessionRestriction – This value defaults to false, but is used to impose a restriction on Windows 9x clients that they can only have one active non-NULL session with the server at a time. Also, existing session based connections (VNETROOTS) are scavenged immediately, without a timeout to allow them to be reused.

     

    • EnableCachingOnWriteOnlyOpens – This value can cause the Redirector to attempt to open a file that is being opened for write only access in a manner that will enable the Redirector to cache the file data. If the open fails, the request will revert back to the original requested access. The value of this parameter defaults to false and is stored in the MRxSmbEnableCachingOnWriteOnlyOpens variable.

     

    • DisableByteRangeLockingOnReadOnlyFiles – This parameter defaults to false, but if set to true will cause level II oplocks to automatically be upgraded to batch oplocks on read-only files opened for read only access. It is stored in the variable DisableByteRangeLockingOnReadOnlyFiles.

     

    • EnableDownLevelLogOff – False by default, this value controls whether a Logoff SMB will be sent to down-level servers when a session is being closed. If this is false, and the server has not negotiated to the NT SMB dialect or does not support NT Status codes, the logoff will not be sent because we aren’t sure that server will understand the request. The value is stored in MrxSmbEnableDownLevelLogOff.

     

    • HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\

     

    • ResilientTimeout – This timer is started when the transport connection associated with a resilient handle is lost. It controls the amount of time the server keeps a resilient handle active after the transport connection to the client is lost. The default value is 300 seconds (Windows 7, Server 2008 R2, 8, Server 2012).

     

    • DurableHandleV2TimeoutInSecond – This timer is started when the transport connection associated with a durable handle is lost. It controls the amount of time the server keeps a durable handle active after the transport connection to the client is lost. The default value is 60 seconds (Windows 8, Windows Server 2012). The maximum value is 300 seconds.

     

    • HKLM\SYSTEM\CurrentControlSet\Services\SMBWitness\Parameters\

     

    • KeepAliveInterval – This functionality was introduced for SMB 3.0 in Windows 8 and Windows Server 2012. The witness protocol is used to explicitly notify a client of resource changes that have occurred on a highly available cluster server. This enables faster recovery from unplanned failures, so that the client does not need to wait for TCP timeouts. The default value is 20 minutes (Windows 8, Windows Server 2012).

    • HKLM\System\CurrentControlSet\Services\SmbDirect\Parameters\

     

    • ConnectTimeoutInMs – Establish a connection and complete negotiation. ConnectTimeoutInMs is the deadline for the remote peer to accept the connection request and complete SMB Direct negotiation. Default is 120 seconds (Windows 8).

     

    • AcceptTimeoutInMs – Accept negotiation: The SMB Direct Negotiate request should be received before AcceptTimeoutInMs expires. The servers starts this timer as soon as it accepted the connection. Default is 5 seconds (Windows 8).

     

    • IdleConnectionTimeoutInMs – This timer is per-connection. It is the amount of time the connection can be idle without receiving a message from the remote peer. Before the local peer terminates the connection, it sends a keep alive request to the remote peer and applies a keep alive timer. Default is Default: 120 seconds (Windows 8).

     

    • KeepaliveResponseTimeoutInMs – This attribute is per-connection. It defines the timeout to wait for the peer response for a keep-alive message on an idle RDMA connection. Default is 5 seconds (Windows 8).

     

    • CreditGrantTimeoutInMs – This timer is per-connection.  It regulates the amount of time that the local peer waits for the remote peer to grant Send credits before disconnecting the connection. This timer is started when the local peer runs out of Send credits. Default is 5 seconds (Windows 8).

     

    References:

     

    [MS-SMB]: Server Message Block (SMB) Protocol

    http://msdn.microsoft.com/en-us/library/cc246231.aspx


    [MS-SMB2]: Server Message Block (SMB) Protocol Versions 2 and 3 http://msdn.microsoft.com/en-us/library/cc246482.aspx


    SMB 2.x and SMB 3.0 Timeouts in Windows

    http://blogs.msdn.com/b/openspecification/archive/2013/03/27/smb-2-x-and-smb-3-0-timeouts-in-windows.aspx

    • Edited by Jeremy_Wu Friday, March 21, 2014 1:23 AM Edit
    Tuesday, March 18, 2014 12:57 PM

All replies

  • 2. Quick Fixes


    2.1 Microsoft published Hotfix


    Windows SMBv2 client computer freezes when the computer is under a heavy load

    http://support.microsoft.com/kb/2792026


    SMB 2.0 client redirector freezes in Windows Vista SP2 and Windows Server 2008 SP2

    http://support.microsoft.com/kb/2792795


    The copy process may stop responding when you try to copy files from a server on a network to a Windows Vista-based computer

    http://support.microsoft.com/kb/931770


    Slow performance when you use a mapped drive to copy files to a remote server from a Windows Server 2003-based computer

    http://support.microsoft.com/kb/885189


    2.2 Workaround or Solution


    2.2.1 Using RoboCopy or RichCopy


    In some cases, slow copy issues are caused by GUI. To isolate the GUI issues, we can use RoboCopy or RichCopy to transfer files between clients and servers.


    Also, you may need to copy a lot of small files, RoboCopy can help improve the performance as well.


    Robocopy (Robust File Copy) is a command-line file copy utility. Unlike normal copy commands, Robocopy is designed for reliable copy or mirroring while maintaining the permissions, attributes, owner information, timestamps and properties of the objects copied.


    RichCopy is the next generation Robocopy adding an easy to use GUI and performance enhancing multithreaded copying (so it can move more than one file at a time which reduces network lag if you are moving a lot of small files.)


    References:


    Robocopy

    http://technet.microsoft.com/en-us/library/cc733145.aspx


    Get to Know Robocopy for More Powerful File Management

    http://technet.microsoft.com/en-us/magazine/ee851678.aspx


    Robocopy and a Few Examples

    http://social.technet.microsoft.com/wiki/contents/articles/1073.robocopy-and-a-few-examples.aspx


    RichCopy

    http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx?pr=blog


    2.2.2 Disable the TCP Chimney Offload, Receive Side Scaling, or Network Direct Memory Access features


    These features help transfer the workload from the CPU to a network adapter during network data transfer. However, if your NICs show as non-RSS capable or you mix mix RSS and non-RSS NICs, performance issues may occur.


    To resolve such issues, you need to make sure that your NICs are Chimney/RSS capable and install the latest drivers. Or, you may need to disable the feature.


    References:


    Information about the TCP Chimney Offload, Receive Side Scaling, and Network Direct Memory Access features in Windows Server 2008

    http://support.microsoft.com/kb/951037


    TCP Chimney and RSS Features May Cause Slow File Transfers or Cause Connectivity Problems (Published by Ace Fekay, MVP)

    http://msmvps.com/blogs/acefekay/archive/2009/08/20/tcp-chimney-and-rss-features-may-cause-slow-file-transfers-or-cause-connectivity-problems.aspx


    Windows Server 2012 File Server Tip: Make sure your network interfaces are RSS-capable

    http://blogs.technet.com/b/josebda/archive/2012/11/10/windows-server-2012-file-server-tip-make-sure-your-network-interfaces-are-rss-capable.aspx


    Networking Deployment Guide: Deploying High-speed Networking Features

    http://www.microsoft.com/en-us/download/details.aspx?id=4872


    2.2.3 Enable Receive Window Auto-Tuning


    Windows Vista includes the Receive Window Auto-Tuning feature which improves performance for programs that receive TCP data over a network. However, this feature is disabled by default for programs that use the Windows HTTP Services (WinHTTP) interface. Some examples of programs that use WinHTTP include Automatic Updates, Windows Update, Remote Desktop Connection, Windows Explorer (network file copy), and Sharepoint (WebDAV).


    Since Windows 7, Receive Window Auto-Tuning is now available for programs that use the Windows Internet (WinINet) application programming interface (API) for HTTP requests instead of WinHTTP. Some examples of programs that use WinINet for HTTP traffic include Internet Explorer, Outlook, and Outlook Express.


    If you enable Receive Window Auto-Tuning for WinHTTP traffic, data transfers over the network may be more efficient. However, in some cases you might experience slower data transfers or loss of connectivity if your network uses an older router and firewall that does not support this feature. For example, when you use Windows Internet Explorer to access applications that are hosted in Microsoft Office SharePoint Server, the HTTP traffic may slow down. This occurs because certain routers do not support the Receive Window Auto-Tuning feature.


    To enable the Receive Window Auto-Tuning feature for HTTP traffic, you must edit the registry. To do this, follow these steps:

    1. Click Start, type regedit in the Start Search box, and then press ENTER.
    2. Locate and then right-click the following registry subkey: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
    3. Point to New, and then click DWORD Value.
    4. Type TcpAutotuning, and then press ENTER.
    5. Right-click TcpAutotuning, and then click Modify.
    6. In the Value data box, type 1, and then click OK.
    7. Exit Registry Editor.
    8. Restart the computer.


    Reference: Description of the Receive Window Auto-Tuning feature for HTTP traffic on Windows Vista-based computers


    2.2.4 Disable Receive Window Auto-Tuning


    Issues may occur if the firewall device has a problem with handling the Receive Window Auto-Tuning feature. Disable the Window Auto-Tuning feature may help you work around this problem.


    Open a privileged command prompt and run


    netsh interface tcp set global autotuninglevel=disabled

     

    Reference: Network connectivity fails when you try to use Windows Vista behind a firewall device


    2.2.5 Disable SMB Signing


    When SMB signing is enabled on both the client and server, SMB sessions are authenticated between the machines on a packet by packet basis. This does have a performance hit of between 10 to 15% as every packet's signature has to be verified. By default, Windows file servers that also act as a Domain Controller have SMB signing turned on.


    To disable SMB signing on the Windows Server 2000 and 2003 perform the following:

    1. Start the Registry Editor (regedit.exe).
    2. Locate and then click the following key in the registry: HKEY_LOCAL_MACHINE\System\Current ControlSet\Services\LanmanServer\Parameters
    1. Double-click the RequireSecuritySignature value, type 0 in the Value data box, and then click OK.
    2. Double-click the EnableSecuritySignature value, type 0 in the Value data box, and then click OK. Close the registry editor.
    3. Shut down and restart Windows.


    To disable SMB signing on the Windows Server 2008 and 2008 R2 perform the following:

    1. To open GPMC, click Start, click Run, type gpmc.msc, and then click OK.
    2. In the console tree, right-click Default Domain Controllers Policy in Domains\Current Domain Name\Group Policy objects\Default Domain Controllers Policy, and then click Edit.
    3. In the Group Policy Management Editor window, in the console tree, go to Computer Configuration/Policies/Windows Settings/Security Settings/Local Policies/Security Options.
    4. In the details pane, double-click Microsoft network server: Digitally sign communications (always).
    5. Verify that the Define this policy setting check box is selected, click Disabled to prevent SMB packet signing from being required, and then click OK.

     

    To apply the Group Policy change immediately, either restart the domain controller or open a command prompt, type the following command, and then press ENTER: gpupdate /force.

     

    References:

     

    Server Message Block communication between a client-side SMB component and a server-side SMB component is not completed if the SMB signing settings are mismatched in Group Policy or in the registry

    http://support.microsoft.com/kb/916846

     

    Slow SMB performance when you copy files from Windows XP to a Windows 2000 domain controller

    http://support.microsoft.com/kb/321169/en-us

     

    Slow network performance occurs if you copy files to a domain controller that is running Windows 2000 or Windows Server 2003

    http://support.microsoft.com/kb/321098

     

    Overview of Server Message Block signing

    http://support.microsoft.com/kb/887429

     

    Modify Security Policies in Default Domain Controllers Policy

    http://technet.microsoft.com/en-us/library/cc731654(WS.10).aspx

     

    2.2.6 Configure opportunistic locking

     

    Opportunistic locking lets clients lock files and locally cache information without the risk of another user changing the file. This increases performance for many file operations but may decrease performance in other operations because the server that grants the opportunistic lock must manage the breaking of that lock when another user requests access to the file.

     

    Reference: Configuring opportunistic locking in Windows

     

    2.2.7 Update outdated kernel-mode filter driver

     

    The outdated filter driver on the server may return an incorrect status code to the Server service. For example, the filter driver may return a STATUS_SUCCESS code instead of a STATUS_OPLOCK_BREAK_IN_PROGRESS code.

     

    Reference: Your system stops responding, you experience slow file server performance, or delays occur when you work with files that are located on a file server


    • Edited by Jeremy_Wu Friday, March 21, 2014 1:24 AM Edit
    Tuesday, March 18, 2014 12:58 PM
  • 3. How to Troubleshoot

     

    3.1 Troubleshooting Decision Tree

    1

    Is the slowness occurring in browsing a network shared folder or   copying a file, or both?

    Browsing, go to 1.1.

    Copying, go to 1.2.

    Both, go to 1.3.

    1.1

    Is the target a DFS path or not?

    Yes, go to 1.1.1.

    No, go to 1.1.2.

    1.1.1

    Is the client visiting the nearest DFS root server and file   server?

    Yes, go to 1.1.1.1.

    No, go to 1.1.1.2.

    1.1.1.1

    Browse the corresponding (Non-DFS) UNC path directly. Do you   still experience the slowness?

    Yes, go to 1.1.1.1.1.

     No, go to 1.1.1.1.2.

    1.1.1.1.1

    Issue is the particular file server responds to the share folder   enumeration requests slowly. Most probably it’s unrelated to DFS. Follow   1.1.2.

    1.1.1.1.2

    Issue is that client experiences delay when browsing the DFS   path, but no delay is visiting the target file server directly. Capture   Network Monitor trace from the client and study if the DFS path is cracked   down.

    1.1.1.2

    Use dfsutil.exe to clear local domain and referral cache. Then   visit the DFS path again and capture Network Monitor trace from the client to   study why the client goes to a wrong file server or DFS root server.

    1.1.2

    Not a DFS issue. Issue is the particular file server responds to   the share folder enumeration requests slowly. “Dir” the same share folder   from Command Prompt. Is it slow?

    Yes, go to 1.1.2.1

    No, go to 1.1.2.2

    1.1.2.1

    Check the number of subfolders and files in that share folder.   Is the number large?

    Yes, go to 1.1.2.1.1

    No, go to 1.1.2.1.2

    1.1.2.1.1

    Try to “dir” a different share folder on the same file server,   but with less items. Is it still slow or not?

    Yes, go to 1.1.2.1.1.1

    No, go to 1.1.2.1.1.2

    1.1.2.1.1.1

    Probably to be performance issue of the file server. Capture   Network Monitor trace from both sides, plus Performance Monitor on the file   server.

    1.1.2.1.1.2

    Probably to be performance issue of the file server,   particularly, of the disk. Capture Network Monitor trace from both sides,   plus Performance Monitor on the file server.

    1.1.2.1.2

    Same as 1.1.2.1.1.1. Probably to be performance issue of the   file server. Capture Network Monitor trace from both sides, plus Performance   Monitor on the file server.

    1.1.2.2

    Explorer.exe browses the share folder slowly while “dir” does   fast. The issue should lie in the particular SMB traffic incurred by   explorer.exe. It's a Shell issue.

    1.2

    Is the target a DFS path or not?

    Yes, go to 1.2.1

    No, go to 1.2.2

    1.2.1

    Is the client downloading/uploading against the nearest file   server?

    Yes, go to 1.2.1.1

    No, go to 1.2.1.2

    1.2.1.1

    Try to download/upload against that file server using the   Non-DFS share path. Still slow?

    Yes, go to 1.2.1.1.1

    No, go to 1.2.1.1.2

    1.2.1.1.1

    Not a DFS issue. Capture Network Monitor trace from both sides   to identify the pattern of the slowness.

    1.2.1.1.2

    This is unlikely to occur because the conclusion is   contradictory to itself. Start from the beginning to double check.

    1.2.1.2

    Same situation as 1.1.1.2. Use dfsutil.exe to clear local domain   and referral cache. Then visit the DFS path again and capture Network Monitor   trace from the client to study why the client goes to a wrong file server or   DFS root server.

    1.2.2

    Same as 1.2.1.1.1. It's not a DFS issue. Capture Network Monitor   trace from both sides to identify the pattern of the slowness.

    1.3

    Follow 1.1 and then 1.2.



    3.2 Troubleshooting Tools


    Network Monitor or Message Analyzer

    Download

    http://www.microsoft.com/en-us/download/details.aspx?id=40308

    Blog

    http://blogs.technet.com/b/messageanalyzer/

    Microsoft Message Analyzer Operating Guide

    http://technet.microsoft.com/en-us/library/jj649776.aspx


    Performance Monitor

    http://technet.microsoft.com/en-us/library/cc749249.aspx


    DiskMon

    http://technet.microsoft.com/en-us/sysinternals/bb896646.aspx


    Process Monitor

    http://technet.microsoft.com/en-us/sysinternals/bb896645


    • Edited by Jeremy_Wu Friday, March 21, 2014 1:25 AM Edit
    Tuesday, March 18, 2014 1:02 PM
  • 4. Further consideration


    With the benefits of SMB 3.0, it is worth upgrading the current Infrastructure to Windows Server 2012 level to experience the new features, such as ODX, SMB multichannel, SMB Direct, RDMA and SMB Transparent Failover.


    Server Message Block overview

    http://technet.microsoft.com/en-us/library/hh831795.aspx


    Improve Performance of a File Server with SMB Direct

    http://technet.microsoft.com/en-us/library/jj134210.aspx


    Automatic SMB Scale-Out Rebalancing in Windows Server 2012 R2

    http://blogs.technet.com/b/josebda/archive/2013/10/30/automatic-smb-scale-out-rebalancing-in-windows-server-2012-r2.aspx


    SMB 3 Security Enhancements in Windows Server 2012

    http://blogs.technet.com/b/filecab/archive/2012/05/03/smb-3-security-enhancements-in-windows-server-2012.aspx


    To scale out or not to scale out, that is the question

    http://blogs.technet.com/b/filecab/archive/2013/12/05/to-scale-out-or-not-to-scale-out-that-is-the-question.aspx


    Keywords, SMB, Slow copy, troubleshooting


    Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.



    • Edited by ForumFAQ Tuesday, March 18, 2014 1:04 PM formatting
    • Edited by Jeremy_Wu Friday, March 21, 2014 1:26 AM Edit
    Tuesday, March 18, 2014 1:03 PM