Map TCP IP Ports to NUMA Nodes (SQL Server)
Applies to: SQL Server (all supported versions)
This topic describes how to map TCP/IP ports to non-uniform memory access (NUMA) nodes by using SQL Server Configuration Manager. On startup, the Database Engine writes the node information to the error log.
To determine the node number of the node you want to use, either read the node information from the error log, or from the sys.dm_os_schedulers view. To set a TCP/IP address and port to single or multiple nodes, append a node identification bitmap (an affinity mask) in brackets after the port number. Nodes can be specified in either decimal or hexadecimal format. To create the bitmap, first number the nodes from right to left starting with zero, as in 76543210. Create a binary representation of the node list, providing 1 for nodes you want to use, and 0 for nodes you do not want to use. For example, to use NUMA nodes 0, 2, and 5, specify 00100101.
NUMA node number 76543210 Mask for 0, 2, and 5 counting from right 00100101
Convert the binary representation (00100101), into decimal
, or hexadecimal
[0x25]. To listen on all nodes, provide no node identifier.
If a port is mapped to more than one NUMA node, SQL Server assigns connections to nodes in a round-robin fashion without attempting to balance load across the nodes.
To enable SQL Server to listen on multiple TCP ports for each IP address, see Configure the Database Engine to Listen on Multiple TCP Ports.
Using SQL Server Configuration Manager
To map a TCP/IP port to a NUMA node
In SQL Server Configuration Manager, expand SQL Server Network Configuration, and then click Protocols for <instance name>.
In the details pane, double-click TCP/IP.
On the IP Addresses tab, in the section corresponding to the IP address to configure, in the TCP Port box, add the NUMA node identifier in brackets after the port number. For example, for TCP port 1500 and nodes 0, 2, and 5, use 1500, or 1500[0x25].