Tuning Windows 2012 – File System, Part 3

In the last two articles we discussed optimizing the SMB and NFS file system on Windows 2012 Server. In this article we’ll discuss the tuning parameters that you can use on client computers to optimize the file system when interacting with SMB or NFS file servers.

 

The following registry-tuning parameters are all a REG_DWORD under the path HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters:

 

  • ConnectionCountPerNetworkInterface (Windows 8 only)

The default is 1, with a valid range from 1-16. The maximum number of connections per interface to be established with a server running Windows Server 2012 for non-RSS interfaces.

 

 

  • ConnectionCountPerRssNetworkInterface (Windows 8 only)

The default is 4, with a valid range from 1-16. The maximum number of connections per interface to be established with a server running Windows Server 2012 for RSS interfaces.

 

  • ConnectionCountPerRdmaNetworkInterface (Windows 8 only)

The default is 2, with a valid range from 1-16. The maximum number of connections per interface to be established with server running Windows Server 2012 for RDMA interfaces.

 

  • MaximumConnectionCountPerServer (Windows 8 only)

The default is 32, with a valid range from 1-64. The maximum number of connections to be established with a single server running Windows Server 2012 across all interfaces.

 

  • DormantDirectoryTimeout (Windows 8 only)

The default is 600 seconds. The maximum time server directory handles held open with directory leases.

 

  • FileInfoCacheLifetime (Windows Vista, Windows 7, or Windows 8 only)

The default is 10 seconds. The file information cache timeout period.

 

  • DirectoryCacheLifetime (Windows Vista and Windows 7 only)

The default is 10 seconds. This is the directory cache timeout. This parameter controls caching of directory metadata in the absence of directory leases.

 

  • DirectoryCacheEntrySizeMax (Windows Vista, Windows 7, or Windows 8 only)

The default is 64 KB. This is maximum size of directory cache entries.

 

  • FileNotFoundCacheLifetime (Windows Vista, Windows 7, or Windows 8 only)

The default is 5 seconds. The file not found cache timeout period.

 

  • CacheFileTimeout (Windows 7 or Windows 8 only)

The default is 10 seconds. This setting controls the time (in seconds) for which the redirector will hold on to cached data for a file after the last handle to the file is closed by an application.

 

  • DisableBandwidthThrottling (Windows Vista, Windows 7, or Windows 8 only)

The default is 0. By default, the SMB redirector throttles throughput across high-latency network connections, in some cases to avoid network-related timeouts. Setting this registry value to 1 disables this throttling, enabling higher file transfer throughput over high-latency network connections.

 

  • DisableLargeMtu (Windows Vista, Windows 7, or Windows 8 only)

The default is 0 for Windows 8 only. In Windows 8, the SMB redirector transfers payloads as large as 1 MB per request, which can improve file transfer speed. Setting this registry value to 1 limits the request size to 64 KB. You should evaluate the impact of this setting before applying it.

 

  • RequireSecuritySignature (Windows Vista, Windows 7, or Windows 8 only)

The default is 0. Changing this value to 1 prevents SMB communication with computers where SMB signing is disabled. In addition, a value of 1 causes SMB signing to be used for all SMB communication. SMB signing can increase CPU cost and network round trips. If SMB signing is not required, ensure that this registry value is 0 on all clients and servers.

 

  • FileInfoCacheEntriesMax (Windows Vista, Windows 7, or Windows 8 only)

The default is 64, with a valid range of 1 to 65536. This value is used to determine the amount of file metadata that can be cached by the client. Increasing the value can reduce network traffic and increase performance when a large number of files are accessed.

 

  • DirectoryCacheEntriesMax (Windows Vista, Windows 7, or Windows 8 only)

The default is 16, with a valid range of 1 to 4096. This value is used to determine the amount of directory information that can be cached by the client. Increasing the value can reduce network traffic and increase performance when large directories are accessed.

 

  • FileNotFoundCacheEntriesMax (Windows Vista, Windows 7, or Windows 8 only)

The default is 128, with a valid range of 1 to 65536. This value is used to determine the amount of file name information that can be cached by the client. Increasing the value can reduce network traffic and increase performance when a large number of file names are accessed.

 

  • MaxCmds (Windows Vista, Windows 7, or Windows 8 only)

The default is 15. This parameter limits the number of outstanding requests on a session. Increasing the value can use more memory, but it can improve performance by enabling a deeper request pipeline. Increasing the value in conjunction with MaxMpxCt can also eliminate errors that are encountered due to large numbers of outstanding long-term file requests, such as FindFirstChangeNotification calls. This parameter does not affect connections with SMB 2 servers.

 

  • DormantFileLimit (Windows XP, Windows Vista, Windows 7, or Windows 8 only)

The default is 1023. This parameter specifies the maximum number of files that should be left open on a shared resource after the application has closed the file.

 

  • ScavengerTimeLimit (Windows XP only)

The default is 10. This is the number of seconds that the redirector waits before it starts scavenging dormant file handles (cached file handles that are currently not used by any application).

 

  • DisableByteRangeLockingOnReadOnlyFiles (Windows XP only)

The default is 0. Some distributed applications lock parts of a Read-only file because synchronization across clients requires that file-handle caching and collapsing behavior is turned off for all Read-only files. This parameter can be set if such applications will not run on the system and collapsing behavior can be enabled on the client computer.

 

The following parameter is not required in Windows 8:

  • EnableWsd – HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\(REG_DWORD)

In Windows 8, you can configure many of these File Server settings with Windows PowerShell, for example, by using the Get-SmbServerConfiguration and Set-SmbServerConfiguration cmdlets.

 

In our next article we’ll look at tuning SMB 3.0 and focus specifically on what’s new in Windows 2012.

 

 

You might also like