The BIOS setting NUMA Nodes per Socket enables the server administrator to specify value between 0 and 4. In this best practice, we increase the number of NUMA Nodes per Socket..
Type of best practice
Day and value
Day 3, Fine Tuning
CPUs and local memory banks are referred to as NUMA nodes. For example, in a two-socket server each of the two CPUs has a local memory bank for a total of two NUMA nodes. When a CPU uses the local memory bank memory access is very fast. However, times are not optimal when a CPU must use a remote memory bank access. Thus, the goal is to keep memory in the local memory bank for the best possible performance.
AMD servers provide the ability to configure additional NUMA nodes per CPU in BIOS. For example, increasing NUMA Nodes per Socket from the default of setting of 1 to 2 configures two NUMA nodes per local memory bank. This works by logically dividing the local memory bank into two equal parts. The benefit is that now each AMD CPU can use two NUMA nodes.
In this best practice, the NUMA Nodes per Socket was set to 2. The PowerEdge R7525 server had two sockets, meaning we doubled the number of NUMA nodes from the original configuration of two to four. Additionally, the BIOS setting L3 cache as NUMA Domain was enabled to allow the large L3 cache to be used for NUMA nodes.
The addition of two NUMA nodes and the use of the L3 cache the goal was to accelerate the four virtualized SQL Server databases.
Using the NUMA Nodes per Socket and L3 cache as NUMA Domain BIOS show no performance improvements for these metrics:
This best practice of increasing the NUMA Nodes per Socket might be most applicable for consolidated database systems. For this reason, we categorized NUMA Nodes per Socket as a Day 3, fine tuning best practices for consolidated database systems.
With dedicated production servers that only service one database adding additional NUMA nodes most likely will not add value.
Use the following steps to view/update the NPS and L3 cache as NUMA parameters.