NUMA Performance Optimization (Doc ID 1488175.1)

Last updated on MAY 02, 2017

Applies to:

Linux OS - Version 2.6.18 and later
Information in this document applies to any platform.
On architectures which support NUMA (non-uniform memory access) it is possible for an application on one cluster node can access memory physically on another node. While this is done using a high-speed transfer bus, the accesses are significantly slower than access to memory local to the node.

The Linux kernel makes extensive use of dynamic memory allocation during its normal operations. Depending on several heuristics, the memory may be allocated locally, or it may be allocated on a separate cluster node.

The kernel's memory allocation policy can be tuned using simple command-line settings.

Each cluster node can have a separate allocation policy. As a corollary, the settings should probably be changed on all cluster nodes. Pinning a process to a particular CPU has no impact on this allocation policy.

Symptoms

System performance can vary with system load, as memory allocations may be satisfied by using local memory, or by using remote memory from a different cluster node.

Performance anomalies include unexpected swap store usage; unexpectedly poor performance; or system out-of-memory process terminations while sufficient memory and swap space appear available.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms