Что бы включить использования 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