NUMA balancing
Technika umieszczania wątku i jego danych blisko siebie w systemie NUMA (Non-Uniform Memory Access), w którym procesor sięga do „własnej” pamięci lokalnej szybciej niż do pamięci podłączonej do innego procesora lub gniazda. Złe rozmieszczenie powoduje zbędne opóźnienia.
Tło: w serwerze z kilkoma gniazdami CPU (lub w procesorze chipletowym) pamięć jest podzielona tak, że każdy procesor ma „swoją” w pobliżu. Odczyt pamięci lokalnej jest szybki; odczyt pamięci innego gniazda (przez łącze międzyprocesorowe) jest wolniejszy — na tym polega „niejednorodność”. NUMA balancing dba o to, by wątek działał na rdzeniu blisko używanej pamięci: system może przenieść albo wątek do danych, albo dane do wątku. Bez tego wątek może stale pobierać dane przez wolne łącze → spadek wydajności przy obciążeniach intensywnie korzystających z pamięci. Ważne w dużych serwerach, środowiskach zwirtualizowanych, a nawet we współczesnych procesorach chipletowych (AMD EPYC/Ryzen, gdzie różne CCD mają różną odległość do pamięci). Linux ma automatyczne NUMA balancing. Kluczowa optymalizacja wielowątkowej wydajności przy dużym zużyciu pamięci. Pokrewne: kontroler pamięci (IMC) i hierarchia cache.