Sql-server – Does RSS Profile have an effect on SQL Server with NUMA setup

Networknumaperformanceperformance-tuningsql server

I'm curious whether the RSS Profile which is default NUMAStatic on Windows 2012 R2 could/should be changed for SQL Server with a NUMA setup.
Has anyone done performance benchmarks on high load SQL Servers with NUMA or Conservative settings?

Best Answer

Receive side scaling (RSS) improves the system performance when handling network data on multiprocessor systems. This should result in better scaling for receiving data from the network.

One place to find details is at: https://technet.microsoft.com/en-us/library/hh997036.aspx

From this I would infer that the Receive side scaling primarily benefits the receipt of data from the network.

There is a link that you might find interesting for an SAP installation and, although posted in 2012, seems to be using pre-Windows 2012 Operating Systems.

Nonetheless, you may benefit from some of the details. One of the charts shows that only 1 processor is consuming the reads, while other processors are idling along doing not so much. See the charts at:

http://blogs.msdn.com/b/saponsqlserver/archive/2012/01/12/network-settings-network-teaming-receive-side-scaling-rss-amp-unbalanced-cpu-load.aspx

Therefore, it seems that RSS is primarily affecting how quickly Windows can receive the data and make it available to other processes, such as the SQL Server. This depends on the RSS Profile you choose.

For example:

  1. The Default profile which disables the new RSS features, leaving behavior very similar to the Windows 2008 R2 behavior.
  2. The NUMA scalability profile enables RSS CPUs to be assigned per NUMA node on a round robin basis. This results in "RSS assigns at least one RSS CPU per NUMA node before assigning the second RSS CPU for each NUMA node." This round robin setup spreads the task across more CPUs, thus likely improving the data throughput.

This suggests that if the server is a heavy consumer of the data network, the NUMA scalability profile could significantly increase the consumption of this data. But once that is accomplished and the data is in cache, I cannot see that this would carry over into other SQL Server operations.

Is your environment consuming very heavy levels of data, such that this would benefit your work? Then you might consider the various profiles available to you.

  1. Other Low latency support includes such options as Parallel Receive Processing, Preserving in-order packet delivery, and several other options that may be a benefit to you.

  2. Also the latest RSS "enables Windows Server 2012 to scale optimally on large servers that have more than 64 processors."

So, RSS enables Windows with better options for receiving data, but it does not seem to indicate that the SQL Server will behave in some better way. But, I cannot find any clear direction on this and most of the papers are about a decade old.