Are there registry settings or other settings available to tune Windows networking (SMB/CIFS) performance?

I'm trying to get maximum throughput for large file copy operations but any settings would be interesting.

So far:

TCP Settings

  • Adjust MTU
  • Enable TCP Window Scaling (RFC 1323). Details here.
  • Allow ports above 5000. Details here.


Other Factors

  • SMB2 has performance advantages over SMB. Details here and here.


General Resources

link|improve this question

75% accept rate
feedback

6 Answers

up vote 2 down vote accepted

What is the OS of your client and server? One thing that can make a difference is to update your servers to windows 2008 and your clients to Vista. When you do this you get to take advantage of SMB2 which is less chatty, has larger buffers, and can do multiple things in a single request making it less sensitive to latency.

link|improve this answer
feedback

Start by enabling TCP Window Scaling (RFC 1323). Here is an excellent article explaining how to do it and what it does.

While you're at it, you will probably want to adjust your TCP Window size. The proper size is calculated based on your specific network conditions. I don't have much experience with this, but there are various calculators and/or tutorials you can google for.

link|improve this answer
Do you know what the default for that setting is under Server 2003 or Server 2008? – Luke Quinane May 5 '09 at 1:13
1  
In Server 2003/XP, the Tcp1323Opts value doesn't exist by default which means it's effectively 0 I think. In Server 2008/Vista, I could've sworn the default was at least 1, but I'm looking at one of my fresh machines right now and it's not there. – Ryan Bolger May 5 '09 at 21:47
feedback

Not Windows specific, but if you're running gigabit ethernet, you might want to consider increasing the Maximum Transmission Unit (MTU). From the default of 1492 to a maximum of 9000. This reduces the overhead required since less fragments would be required for transmitting the same file.

link|improve this answer
feedback

From the "Performance Tuning Guidelines for Windows Server 2008":

TreatHostAsStableStorage

HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\(REG_DWORD)

The default is 0. This parameter disables the processing of write flush commands from clients. If the value of this entry is 1, the server performance and client latency for power-protected servers can improve. Workloads that resemble the NetBench file server benchmark benefit from this behavior.

and

AsynchronousCredits

HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\(REG_DWORD)

The default is 512. This parameter limits the number of concurrent “asynchronous” SMB commands that are allowed on a single connection. Some file clients such as IIS servers require a large amount of concurrency, with file change notification requests in particular. The value of this entry can be increased to support these clients.

link|improve this answer
feedback

From TechNet:

MaxUserPort

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\(REG_DWORD)

Default: 5000
Range: 5,000–65,534 (port number)

Specifies the highest port number that TCP can assign when an application requests an available user port from the system. Typically, ephemeral ports (those used briefly) are allocated to port numbers 1024 through 5000.

link|improve this answer
feedback

NetApp Data Ontap Operating System uses its own oplocks or Opportunistic so handle Windows smb 1.0/2.0 timeouts. Great Post.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.