Updated: 30 September 2026 · Applies to: Linux kernels on AlmaLinux and Rocky Linux 9 and 10, RHEL 9 and 10, Ubuntu 24.04 and 26.04, Debian 13
On servers with more than one CPU socket (and on some single-socket processors), memory is divided into NUMA nodes: each CPU reaches its "own" memory faster than memory attached to another CPU. Linux is NUMA-aware and places processes and memory accordingly, which is almost always the best choice. Turning NUMA off is rarely a good idea; it is sometimes suggested for a specific application or to rule NUMA out while troubleshooting. This guide shows how to check the layout, how to use the better alternatives, and how to disable NUMA if you must.
1. Check the NUMA layout
lscpu | grep -i numa numactl --hardware # package numactl
If NUMA node(s) is 1, the server has a single node and there is nothing to disable.
2. Better alternatives to turning it off
- Interleave memory for one application, which spreads its memory evenly across nodes. Databases such as MongoDB recommend this:
numactl --interleave=all /path/to/program
For a systemd service, set it in the unit'sExecStart, or use the service's own NUMA settings if it has them. - Bind an application to one node, so its CPUs and memory stay together:
numactl --cpunodebind=0 --membind=0 /path/to/program. - Automatic NUMA balancing is usually on by default on NUMA systems (
cat /proc/sys/kernel/numa_balancingshows 1); it moves memory closer to the CPUs that use it.
3. Disable NUMA for the whole system
If you still need to, add numa=off to the kernel command line. The kernel then treats all memory as one node.
grubby --update-kernel=ALL --args="numa=off" # AlmaLinux, Rocky Linux, RHEL reboot
On Ubuntu and Debian, add numa=off to GRUB_CMDLINE_LINUX in /etc/default/grub, run update-grub and reboot. Check afterwards with cat /proc/cmdline and numactl --hardware, which should show one node.
Some servers can also turn NUMA off in the BIOS or UEFI (often called "node interleaving"). Measure performance before and after: on multi-socket servers, disabling NUMA usually makes memory access slower on average. To undo the kernel setting: grubby --update-kernel=ALL --remove-args="numa".
Official documentation: kernel parameters and numactl manual.
Ucartz services for this topic
- KVM VPS hosting: NVMe SSD and full root access, with Free Basic Managed Support.
- Unmanaged dedicated servers: full root access and free IPMI KVM, with Free Basic Managed Support.
- Linux server management: hardening, patching, monitoring and automation for Ubuntu, Debian, RHEL and AlmaLinux.
