Performance Tuning Guidelines for Windows Server 2008 R2

I am often asked about File Server performance. The usual conversation evolves into a discussion on what registry settings would be recommend to make a file server work faster. We typically end up talking about specific settings for performance tuning and how they might affect application compatibility, prevent connection with older client versions, produce unwanted results in specific configurations or require more resources than a typical server might include. As you might have guessed, there's always a reason why a specific setting that improves performance is not the default setting.

I'm surprised to find that many have not heard that the Windows Performance team has published a guide aimed exactly at that. The Performance Tuning Guide for Windows Server 2008 R2 contains key performance recommendations for Server Hardware, Networking and Storage. It also contains performance tuning considerations for many server roles, including:

  • Web Servers
  • File Servers
  • Active Directory Servers
  • Remote Desktop Session Host
  • Remote Desktop Gateway
  • Virtualization Servers (Hyper-V)
  • File Server Workload
  • Networking Workload
  • Remote Desktop Services Knowledge Worker Workload
  • SAP Sales and Distribution Two-Tier Workload

Being a Program Manager in the File Server Team, I am obviously interested in the sections regarding that role. In that specific section, the guide talks about selecting the proper hardware, describes the Server Message Block protocol and offers a few configuration considerations. It then goes on to describe specific registry settings that affect the performance of the File Server and File Clients.

For File Servers, it offers details on the following settings:

  • NtfsDisable8dot3NameCreation
  • TreatHostAsStableStorage
  • AsynchronousCredits
  • Smb2CreditsMin and Smb2CreditsMax
  • AdditionalCriticalWorkerThreads
  • MaximumTunnelEntries
  • SrvMaxThreadsPerQueue
  • RequireSecuritySignature
  • MaxMpxCt

For File Clients, it describes the following general tuning parameters:

  • DisableBandwidthThrottling
  • DisableLargeMtu
  • EnableWsd
  • RequireSecuritySignature
  • FileInfoCacheEntriesMax
  • DirectoryCacheEntriesMax
  • FileNotFoundCacheEntriesMax
  • MaxCmds
  • DormantFileLimit
  • ScavengerTimeLimit
  • DisableByteRangeLockingOnReadOnlyFiles

It is also helpful to look into the Networking and Storage subsystems for your file server. For instance, the document describes a number of parameters related to NTFS, storage arrays and network adapters' offload capabilities.

I consider this 93-page document a "must read" for all Windows Server administrators. However, these advance settings are not for the novice. I definitely do not recommend experimenting with them unless you understand exactly what they do. You should definitely not try these settings in a production system without proper testing. The guide does include the default settings for the parameters, so you can return to them if your changes don't produce the expected results.

Find the guide online at https://www.microsoft.com/whdc/system/sysperf/Perf_tun_srv-R2.mspx