Non-Uniform Memory Access nebo Non-Uniform Memory Architecture (NUMA) je návrh fyzické paměti používaný v architektuře SMP (multiprocessors), kde doba přístupu do paměti závisí na umístění paměti vzhledem k procesoru. V rámci NUMA může procesor přistupovat ke své vlastní lokální paměti rychleji než nelokální paměť, tj. paměť lokální pro jiný procesor nebo paměť sdílená mezi procesory.
V systému NUMA jsou procesory, paměť a I/O seskupeny do buněk. Charakteristiky latence a šířky pásma komunikace uvnitř buňky jsou „rychlé“, zatímco přechod mimo buňku je „pomalý“. Vzhledem k tomu, že paměť v systémech NUMA je fyzicky distribuována, ale logicky sdílena, nabízejí tyto systémy lepší výkon aplikacím, které jsou optimalizovány pro využití jejich funkcí. Pro neoptimalizované aplikace stále nabízejí lepší výkon, protože výchozí chování je navrženo tak, aby bylo neškodné, ne-li výhodné, a stále mají přístup k mnohem větším sdíleným zdrojům paměti, CPU a diskového prostoru.
Jak zjistíme, zda je povoleno NUMA
NUMA musí být povoleno v systému BIOS. Pokud dmesg nemá záznamy o inicializaci numa během spouštění, je možné, že zprávy související s NUMA v kruhové vyrovnávací paměti jádra byly přepsány.
Systémy s podporou NUMA
Pokud je v systému BIOS povoleno NUMA, spusťte příkaz „numactl –hardware ‘ k zobrazení seznamu dostupných uzlů v systému. Níže je uveden příklad výstupu numactl –hardware v systému, který má NUMA.
# numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 node 0 size: 8157 MB node 0 free: 88 MB node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 node 1 size: 8191 MB node 1 free: 5176 MB node distances: node 0 1 0: 10 20 1: 20 10
NUMA Disabled Systems
1. Pokud je NUMA v systému BIOS zakázáno, použijte příkaz „numactl –show ‘ nezobrazuje více uzlů.
# numactl --show policy: default preferred node: current physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 cpubind: 0 nodebind: 0 membind: 0
2. Příkaz ‘numactl –hardware ‘ také neuvádí více uzlů.
available: 1 nodes (0) node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 node 0 size: 65525 MB node 0 free: 17419 MB node distances: node 0 0: 10
3. Pokud server nemá podporu NUMA nebo pokud není povolena možnost BIOS, zobrazí se v dmesg následující zprávy
No NUMA configuration found Faking a node at 0000000000000000-0000001027fff000
4. Pokud ACPI je zakázáno, což také zakáže NUMA; ověřte, že ACPI není zakázáno parametrem jádra grub.conf, a pokud je nalezen, odstraňte jej:
$ grep acpi=off /proc/cmdline $