Что бы включить использования NUMA ищем опцию в биосе “node interleaving” (для Dell-серверов находится в разделе Memory) и выставляем её в Disabled (по умолчанию в Dell она как раз disabled). Значение же Enable отключает использование Numa. Аналогично нужно отключить опцию Alternate RTID (Requestor Transaction ID) (для Dell-серверов находится в разделе Processor) и выставляем её в Disabled (по умолчанию в Dell она как раз disabled)
Вот так выглядит распределение memory при отключённой NUMA (в примере 2-сокетная конфигурация сервера):
(global-zone)# lgroup 0 (root):
Children: none
CPUs: 0-39
Memory: installed 256G, allocated 248G, free 8.3G
"default" memory: installed 256G, allocated 248G, free 8.3G
Lgroup resources: 0 (CPU); 0 (memory)
Load: 0.197
Latency: 0
а вот так – при включённой:
(global-zone)# lgrpinfo
lgroup 0 (root):
Children: 1 2
CPUs: 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38
Memory: installed 256G, allocated 16G, free 240G
Lgroup resources: 1 2 (CPU); 1 2 (memory)
Latency: 21
lgroup 1 (leaf):
Children: none, Parent: 0
CPUs: 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38
Memory: installed 128G, allocated 4.7G, free 123G
Lgroup resources: 1 (CPU); 1 (memory)
Load: 3.08
Latency: 10
lgroup 2 (leaf):
Children: none, Parent: 0
Memory: installed 128G, allocated 11G, free 117G
Lgroup resources: 2 (CPU); 2 (memory)
Load: 0.0146
Проверим процессы через plgrp:
(global-zone)# plgrp 3727|head -2
PID/LWPID HOME
3727/1 2
(global-zone)# plgrp $
PID/LWPID HOME
5151/1 1
Процесс с pid’ом 3727 запущен на lgroup2, а сама оболочка – lgroup1. Если зайти в зону, то ситуация будет зеркальная:
(zone)# lgrpinfo
lgroup 0 (root):
Children: 1 2
CPUs: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
Memory: installed 256G, allocated 132G, free 124G
Lgroup resources: 1 2 (CPU); 1 2 (memory)
Latency: 21
lgroup 1 (leaf):
Children: none, Parent: 0
Memory: installed 128G, allocated 63G, free 65G
Lgroup resources: 1 (CPU); 1 (memory)
Load: 0.0056
lgroup 2 (leaf):
Children: none, Parent: 0
CPUs: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
Memory: installed 128G, allocated 69G, free 59G
Lgroup resources: 2 (CPU); 2 (memory)
Load: 0.0575
Latency: 10
Посмотрим plgrp:
(zone)# plgrp 3727 | head -2
PID/LWPID HOME
3727/1 2
(zone)# plgrp $
PID/LWPID HOME
5318/1 2
Здесь все процессы будут запущены в lgroup2, так как для зоны мы выделили весь socket (нумерация сокетов с 0-ля, выделен второй сокет):
(global-zone)# zonecfg -z zone info dedicated-cpu
dedicated-cpu:
ncpus not specified
cpus not specified
cores not specified
sockets: 1
Как включить NUMA для известных приложений:
– mysql
flush_caches = 1
innodb_numa_interleave = 1
– java
-XX:+UseNUMA