NUMA

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.

NUMA vs. UMA

UMANUMA
GeheugenGedeeld, gelijke toegangstijdPer CPU-node, ongelijke toegangstijd
SchaalbaarheidBeperktBeter voor veel CPU's
Typisch gebruikDesktop, kleine serverGrote multi-socket servers

NUMA-nodes

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

Belang voor prestaties

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.

Zie ook

  • kernel — geheugenbeheer
  • hugepages — geoptimaliseerde geheugenpagina's
  • cgroups — resource-isolatie per groep
  • proces — processen en geheugentoewijzing
linuxkernelhardware