null

Understanding NUMA

Enterprise Resource Center • Processor Knowledge Base

Understanding NUMA in Enterprise Servers

Non-Uniform Memory Access, or NUMA, is a server architecture that allows processors to access locally attached memory faster than memory associated with another processor or NUMA domain. Understanding NUMA can be important when configuring multi-socket servers, virtualization hosts, databases and memory-intensive enterprise workloads.

NUMA NUMA Nodes Server Memory Virtualization Intel Xeon AMD EPYC
Tech Supply Direct
Quick Answer

What Is NUMA?

NUMA stands for Non-Uniform Memory Access. It describes a computer architecture in which memory access time can vary depending on the relationship between a processor and the physical memory being accessed.

In a NUMA system, a processor generally accesses memory associated with its local NUMA node with lower latency than memory associated with another node. Accessing memory outside the local node can require communication across the processor interconnect, adding latency and consuming interconnect bandwidth.

Server Architecture

Why Do Servers Use NUMA?

Modern enterprise servers can contain many processor cores and large amounts of memory. NUMA allows memory resources to be distributed closer to the processors that use them instead of forcing all processors to access memory through one centralized path.

SCALABILITY

More CPU Resources

NUMA architectures help large servers scale across multiple processors, cores and memory controllers.

MEMORY

Distributed Memory

Memory channels can be associated with specific processors or NUMA domains instead of one centralized memory controller.

BANDWIDTH

Parallel Memory Access

Multiple processors can use their local memory resources simultaneously, helping increase aggregate system memory bandwidth.

PERFORMANCE

Locality Matters

NUMA-aware software can try to keep processing and memory close together to reduce unnecessary remote memory access.

Simplified Architecture

How a NUMA Server Is Organized

A simplified two-socket server can be viewed as two NUMA nodes, with each processor connected directly to its own memory resources and linked to the other processor through a high-speed interconnect.

NUMA NODE 0
Processor / CPU Cores
Local Memory Directly associated memory channels
NUMA NODE 1
Processor / CPU Cores
Local Memory Directly associated memory channels
CPU / NUMA NODE INTERCONNECT

This diagram is intentionally simplified. Actual NUMA topology varies by processor architecture, server platform, firmware configuration and operating system.

Memory Locality

Local Memory vs Remote Memory

LOCAL ACCESS

Local NUMA Memory

Local memory is memory associated with the NUMA node where a CPU core is executing. The processor can generally access this memory through its local memory controller with lower latency.

REMOTE ACCESS

Remote NUMA Memory

Remote memory belongs to another NUMA node. Access may need to travel across a processor or node interconnect, which can increase latency compared with local memory access.

Remote memory is not unusable memory.

NUMA systems are designed to access memory across nodes. The performance consideration is that remote access can have different latency and bandwidth characteristics. NUMA-aware operating systems and applications attempt to place workloads and memory efficiently.

Architecture Comparison

UMA vs NUMA

Characteristic UMA NUMA
Full Name Uniform Memory Access Non-Uniform Memory Access
Memory Access Designed around relatively uniform memory access characteristics Access characteristics depend on memory location relative to the processor
Locality Less dependent on processor-to-memory locality Local vs remote memory placement can matter
Server Scaling Simpler architecture Well suited to scalable multiprocessor systems
Optimization Memory placement is generally less topology-sensitive Workload and memory placement can affect performance
Key Concept

What Is a NUMA Node?

A NUMA node is a logical grouping of processor resources and memory that share relatively local access characteristics. In a simple dual-socket server, each processor may correspond to a NUMA node, but modern processor designs and firmware settings can create more complex topologies.

The operating system detects this topology and can use it when scheduling threads and allocating memory. Hypervisors can also expose virtual NUMA topology to virtual machines.

Multi-Socket Servers

NUMA in Dual-Socket Servers

NUMA becomes especially important in servers containing multiple processor sockets because each processor typically has direct access to specific memory channels.

STEP 1

CPU Executes a Thread

An application thread executes on a core associated with a particular NUMA node.

STEP 2

Memory Is Requested

The application needs data located somewhere in the server's physical memory.

STEP 3

Local or Remote?

If the memory is local, the request can use the node's local memory path. Otherwise it may traverse the interconnect.

STEP 4

Performance Can Differ

Remote access can introduce additional latency and interconnect traffic compared with local access.

Hardware Configuration

NUMA Makes Server Memory Population Important

Installing the correct total amount of RAM does not automatically mean the server has an optimal memory configuration. Memory should be populated according to the server manufacturer's channel, processor and DIMM population rules.

In a multi-socket server, unbalanced memory population can leave one processor with substantially different local memory resources than another. This can affect available memory bandwidth, capacity distribution and workload placement.

Processor Platforms

NUMA on Intel Xeon and AMD EPYC Servers

INTEL SERVER PLATFORM

Intel Xeon

Multi-socket Intel Xeon server platforms use processor interconnects and distributed memory resources that create NUMA topology. Exact node organization varies by processor generation and server configuration.

Learn About Intel Xeon →
AMD SERVER PLATFORM

AMD EPYC

AMD EPYC server platforms also expose NUMA topology. The exact relationship between sockets, memory controllers, processor dies and NUMA nodes depends on the EPYC generation and platform configuration.

Learn About AMD EPYC →
Virtual Infrastructure

NUMA and Virtualization

Hypervisors such as VMware ESXi, Microsoft Hyper-V and KVM-based virtualization platforms can use NUMA topology when scheduling virtual machines across physical CPU and memory resources.

vCPU Placement Hypervisors schedule virtual CPUs onto physical processor resources.
VM Memory Keeping VM memory close to the CPU resources running the VM can improve locality.
Large VMs Large virtual machines may span physical NUMA boundaries depending on their CPU and memory size.
vNUMA Virtual NUMA can expose topology information to NUMA-aware guest operating systems and applications.
Virtual NUMA

What Is vNUMA?

vNUMA, or virtual NUMA, is a virtualized representation of NUMA topology presented to a virtual machine. It allows a NUMA-aware guest operating system and applications to understand that the VM's virtual CPUs and memory may span multiple topology domains.

vNUMA becomes particularly relevant with large VMs. Exact behavior and configuration recommendations depend on the hypervisor, processor platform and workload.

Performance Considerations

When Does NUMA Affect Server Performance?

Large Databases Memory-intensive database workloads can be sensitive to CPU and memory locality.
Virtualization Large or highly utilized VMs can interact with physical NUMA boundaries.
HPC Parallel applications can benefit from careful CPU and memory placement.
In-Memory Applications Applications working with large memory datasets may be sensitive to memory latency and bandwidth.
Analytics Data-processing workloads can place significant pressure on memory bandwidth.
Multi-Socket Systems Workloads spanning multiple sockets may generate more remote memory traffic.
Common Misconception

NUMA Is Not Automatically a Performance Problem

NUMA is a normal architectural feature of many enterprise servers. The presence of multiple NUMA nodes does not mean a server is incorrectly configured or inherently slow.

Performance issues are more likely when workloads repeatedly access remote memory unnecessarily, memory is poorly balanced, applications are not NUMA-aware, or virtual machines are sized without considering the host's physical topology.

Server Planning

NUMA Configuration Checklist

Check CPU Topology Determine the number of sockets, cores and NUMA nodes.
Balance Memory Follow OEM DIMM population rules across processors and memory channels.
Review Firmware NUMA-related platform behavior can be affected by BIOS and firmware configuration.
Check the OS Confirm that the operating system detects the expected NUMA topology.
Review VM Sizing Large VMs may require additional NUMA planning.
Test the Workload Benchmark important applications under realistic production conditions.
Frequently Asked Questions

NUMA FAQ

What does NUMA stand for?

NUMA stands for Non-Uniform Memory Access.

What is a NUMA node?

A NUMA node is a grouping of processor and memory resources that share relatively local memory access characteristics.

What is local NUMA memory?

Local memory is memory associated with the NUMA node where the processor core executing the workload resides.

What is remote NUMA memory?

Remote memory is memory associated with another NUMA node and may require access across a processor interconnect.

Is NUMA only used in dual-socket servers?

No. NUMA topology is not necessarily equivalent to socket count. Modern processor and server designs can expose topology that is more complex than one NUMA node per physical socket.

Does NUMA affect virtualization?

Yes. Hypervisors can use physical NUMA topology when scheduling virtual CPUs and allocating memory, especially for larger virtual machines.

What is vNUMA?

vNUMA is virtual NUMA topology presented to a virtual machine so a NUMA-aware guest can understand its virtual CPU and memory organization.

Does NUMA make a server slower?

Not inherently. NUMA enables scalable server architectures, but poorly placed workloads or excessive remote memory access can affect performance.

Does memory placement matter with NUMA?

Yes. Memory population and workload placement can influence memory locality, bandwidth and performance in NUMA systems.

Do Intel Xeon servers use NUMA?

Multi-socket Intel Xeon platforms commonly expose NUMA topology to the operating system.

Do AMD EPYC servers use NUMA?

Yes. AMD EPYC platforms can expose NUMA topology, with the exact arrangement depending on processor generation, server design and configuration.

Should NUMA be disabled?

NUMA-related firmware settings should not be changed simply because multiple nodes are visible. Configuration should follow the server manufacturer's guidance and the requirements of the operating system, hypervisor and workload.

Related Enterprise Resources

Continue Exploring Server Architecture

Enterprise Server Hardware

Need Help Matching Server Processors and Memory?

Tech Supply Direct can help identify compatible processors, ECC server memory and enterprise hardware based on your server manufacturer, model, processor generation and existing configuration.