Slow SMB Performance When You Copy Files from Windows XP to a Windows 2000 Domain Controller

 
The information in this article applies to:
bulletMicrosoft Windows XP Professional
bulletMicrosoft Windows XP Home Edition
 

SYMPTOMS

You may notice slow copy performance when you copy files from a Windows XP-based client computer to a Windows 2000-based domain controller (when you use the Server Message Block [SMB] protocol). This slow performance only occurs when you copy files from a Windows XP-based client to a Windows 2000-based domain controller (push mode) and not when you copy files from the domain controller to the client (get mode).

CAUSE

The slow SMB performance may occur if a delayed TCP/IP acknowledgement (also known as a TCP ACK) occurs in a "SMB: C NT transact - Notify Change" packet. Typically, this issue occurs if you use Windows Explorer to copy the files to a domain controller. However, this issue may also occur if you use a command prompt to copy files or if the focus is on the destination folder in Windows Explorer (when the Change notification is involved). This issue occurs as soon as you perform an SMB copy procedure (from any program) to a remote target folder that has been also invoked by a "change notification" request (from any program).

By default, this behavior occurs as soon as SMB is using security signatures. If security signatures are configured, SMB must be processed synchronously by the redirector. The redirector has to wait until the current SMB command is fully processed before it continues with the next one. The redirector waits until it receives the TCP/IP acknowledgement from server.

RESOLUTION

To work around this issue, use either of the workarounds that are described in this section.

Workaround 1

  1. Start Registry Editor (Regedt32.exe).
  2. Locate and then click the following key in the registry:

    HKEY_LOCAL_MACHINE\System\CCS\Services\LanmanServer\Parameters

  3. Double-click the RequireSecuritySignature value, type 0 in the Value data box, and then click OK.
  4. Double-click the EnableSecuritySignature value, type 0 in the Value data box, and then click OK.
  5. Quit Registry Editor.

By default, the EnableSecuritySignature value is set to 1 (ON) on a domain controller and is set to 0 (OFF) on a non-domain controller. As a result, slow SMB copy performance only occurs when you copy items to a domain controller.

Workaround 2

Toggle the TCP delayed ACK timer (TcpDelAckTicks) to a lower value. When you do so, the server acknowledges items more frequently but at shorter intervals. You can use hotfix that is described in the following Microsoft Knowledge Base article to specify a custom delayed ACK value:

 

Q311833 The TcpDelAckTicks Registry Value Has No Effects on Ack Timeouts

If you set the TcpDelAckTicks value to 0, you turn the timer off completely. When the timer is turned off, TCP reverts to pre-Request for Comments (RFC) 1122 behavior; it acknowledges each packet. This workaround solves the SMB copy performance issue. However, on a high latency network (highly saturated segment), this behavior increases the number of acknowledgements from the domain controller and puts additional strain on the network.

MORE INFORMATION

To see how the slow performance is related to TCP/IP acknowledgement of some SMB frames ("SMB: C NT transact - Notify Change"), perform a network trace. If you do so, you see that the redirector does not continue with the rest of the copy operations when the "SMB: C NT Transact - Notify Change" frame is not acknowledged by the server at the TCP transport level. The TCP/IP acknowledgement is only delayed (for about 0.2 seconds) when the server is a Windows 2000-based domain controller.

First Published: Apr 11 2002 12:43AM