Optimizing Windows Server 2016 performance

Torque Booster

File Server Performance Optimization

To optimize performance, Microsoft recommends some registry adjustments to clients that communicate with a Windows 2016 file server via SMB. The DWORD value ConnectionCountPerNetworkInterface in the HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters path allows values from 1 to 16 . This determines how many Server Message Block (SMB) connections a client with non-Receive Side Scaling (RSS) adapters can establish. RSS [2] controls network access on computers with multiple processors. Microsoft recommends that you set the value to 1 . The value works for all computers running Windows 8/8.1/10 and Windows Server 2012, 2012 R2, and 2016.

If a client-side adapter supports RSS, the SMB value is controlled by the ConnectionCountPerRssNetworkInterface DWORD value in the same path. Here, Microsoft recommends a value of 4 , but again a range of 1 to 16 is available [3]. However, before setting the entry on clients and servers, you should check carefully whether the respective values actually play a role in your environment. You should also use performance measurement and other tools to see whether performance has improved after adjusting the registry entries.

Accelerating SMB Traffic

Windows Server 2016 uses SMB However, if Windows Server 2016 communicates with older Windows versions or Linux, the SMB version from the oldest system is used. However, when using current Intel processors, the new version offers significantly more performance. You can check the currently used SMB version in PowerShell with Get-SmbConnection on the clients and Get-SmbSession|FL  on servers. Various registry values can also be adjusted to improve SMB performance [4].

SMB Direct is enabled between servers running Windows Server 2016. To use this function, the built-in adapters must support the Remote Direct Memory Access (RDMA) function. Overloaded servers can thus be accelerated by transferring data to underutilized servers. For this to work, the network must be extremely fast, and the adapters must be of the iWARP, InfiniBand, or RDAM over Converged Ethernet (RoCE) type. Hyper-V and MS SQL Server mainly benefit from this technology.

Optimizing the Web Server

The performance of Windows Server 2016 web servers can be improved significantly just with the use of on-board resources. For example, compression speeds accelerate a server's response time and save bandwidth when transferring web pages. You can control compression using the Compression feature in Internet Information Service (IIS) Manager (Figure 2). You can specify the size of files to compress and how much storage space is available to each application pool, including the web pages and applications it contains. The cache directory space is also defined here.

Figure 2: File compression in IIS Manager relieves the network, but burdens the CPU.

Some settings are only available at the server level; others are made at the website and application levels so that each application uses its own compression settings. Enabling compression burdens the server hardware, but network performance increases. Whether or not these measures will increase performance depends on whether the server or the wire is the bottleneck. Because the wire is most likely responsible for slow transmission, static content compression is already activated by default in IIS 10.

If you have already compressed static content, such as a page or a file, this does not burden the server again, because the file simply comes out of the compression cache the next time it is requested. If you enable compression for dynamic content, each transmission has to be compressed over and over again, which saves bandwidth but costs CPU power. To compress dynamic content, you first need to install the corresponding server role.

Parts of web pages can be made available in the web server's cache, so that retrieving these parts does not burden the server. You can manage this function with the output caching feature in IIS Manager. The basic settings are accessible with the Edit Feature Settings option from the context menu or in the Actions pane. In the settings, activate the function and set a limit. However, the cache is only useful if you have defined rules that determine which data the server should cache (Figure 3).

Figure 3: Temporary output buffering retains parts of a web page to speed up the page build-up.

You can also manage kernel caching here. Requests to the cache are not executed in the server's user mode, but in the kernel itself. The applications are therefore not burdened. IIS decides how much memory it provides. Only increase the limit if you discover that your server is not yet fully utilized, but be very careful, because it can quickly have the opposite effect.

From the context menu, you can create new rules for the cache. First, determine which files are to be cached and then how long the data should remain in cached memory. Define either temporary storage until the file is changed or a time interval. You can also generally prevent caching of some file types at this point.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus