NUMA (Non-Uniform Memory Access) is een geheugenarchitectuur waarbij een systeem meerdere processors heeft, elk met hun eigen lokale geheugen. Toegang tot lokaal geheugen is snel; toegang tot het geheugen van een andere processor is trager.
| UMA | NUMA | |
|---|---|---|
| Geheugen | Gedeeld, gelijke toegangstijd | Per CPU-node, ongelijke toegangstijd |
| Schaalbaarheid | Beperkt | Beter voor veel CPU's |
| Typisch gebruik | Desktop, kleine server | Grote multi-socket servers |
Elke processor en zijn lokale geheugen vormt een NUMA-node. Een systeem met twee processors heeft doorgaans twee NUMA-nodes.
numactl --hardware # NUMA-topologie tonen
numastat # geheugengebruik per node
Een proces dat altijd op zijn lokale NUMA-node draait, presteert beter dan een proces dat geheugen over nodes heen benadert. De Linux-kernel probeert automatisch geheugen lokaal toe te wijzen, maar niet-optimale configuratie kan prestatieproblemen opleveren.