SQL Server 2008
is NUMA–aware, and both scheduling and memory management can take advantage of
NUMA hardware by default. You can use some special confi gurations when you work
with NUMA, so we’ll provide some general
background here before discussing scheduling and memory.
The main benefit of NUMA is scalability, which has defi nite
limits when you use symmetric multiprocessing (SMP) architecture. With SMP, all
memory access is posted to the same shared memory bus. This works fi ne for a
relatively small number of CPUs, but problems appear when you have many CPUs
competing for access to the shared memory bus. The trend in hardware has been
to have more than one system bus, each serving a small set of processors. NUMA limits the number of CPUs on
any one memory bus. Each group of
processors has its own memory and possibly its own I/O channels.
However, each CPU can access memory associated with other groups in a coherent
way. Each group is called a NUMA node, and the nodes are linked to each other by a high-speed
interconnection. The number of CPUs within a NUMA node depends on the hardware
vendor. It is faster to access local memory than the memory associated with
other NUMA nodes. This is the reason for the name Non-Uniform Memory Access.
SQL Server 2008
allows you to subdivide one or more physical NUMA nodes into smaller NUMA
nodes, referred to as software NUMA or soft-NUMA. You typically use soft-NUMA
when you have many CPUs and do not have
hardware NUMA because soft-NUMA allows only for the subdividing of CPUs but not
memory. You can also use soft-NUMA to subdivide hardware NUMA nodes into groups
of fewer CPUs than is provided by the hardware NUMA. Your soft-NUMA nodes can
also be configured to listen on their own ports.
Only
the SQL Server scheduler and SNI are soft-NUMA–aware. Memory nodes are created
based on hardware NUMA and are therefore not affected by soft-NUMA.
TCP/IP, VIA,
Named Pipes, and shared memory can take advantage of NUMA round-robin
scheduling, but only TCP and VIA can affi nitize to a specific set of NUMA
nodes.