Dans le noyau Linux, la documentation pour CONFIG_NUMA
dit:
Enable NUMA (Non Uniform Memory Access) support.
he kernel will try to allocate memory used by a CPU on the
local memory controller of the CPU and add some more
NUMA awareness to the kernel.
For 64-bit this is recommended if the system is Intel Core i7
(or later), AMD Opteron, or EM64T NUMA.
J'ai un processeur Intel Core I7, mais afaict, il n'a qu'un nœud numa:
$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5 6 7
node 0 size: 16063 MB
node 0 free: 15031 MB
node distances:
node 0
0: 10
Alors quel est le but d'avoir CONFIG_NUMA=y
, quand i7 n'a qu'un seul noeud numa?
Je pense que cette image explique assez:
Prise ou nœud numa est une collection de noyaux avec un accès local à la mémoire. Chaque socket contient 1 ou plusieurs cœurs. Notez que cela ne se réfère pas nécessairement à une prise physique, mais plutôt à l'architecture de la mémoire de la machine, qui dépendra de votre fournisseur de puces.
Core du processeur (CPU Core, processeur logique) fait référence à une seule unité de traitement capable de calculer des calculs.
Ce qui précède indique que vous auriez besoin de plusieurs processeurs de la machine pour tirer parti de Numa Architecture.
Vous pouvez avoir une prise en charge numa compilée dans le noyau et l'exécuter sur une machine de processeur unique. C'est semblable que le soutien SMP. Il est également compilé, mais lorsque le noyau détecte qu'il existe un processeur unique dans le système, il ne l'utilisera pas (Désactiver). Il en va de même pour Numa. Vous pouvez vérifier dmesg
tampon à anneau de noyau ou /var/log/dmesg
Fichier pour les messages associés:
Numa - processeur unique (ou numa désactivé) x Multi processeur :
No NUMA configuration found
NUMA: Allocated memnodemap from b000 - b440
SMP - Processeur unique x Multi processeur :
SMP: Allowing 1 CPUs, 0 hotplug CPUs
SMP: Allowing 32 CPUs, 0 hotplug CPUs
J'ai fait des recherches sur la même chose pour mon ordinateur de bureau tout en construisant mon noyau seul. J'ai décidé de désactiver Numa après de nombreuses recherches. Mon processeur est un noyau I7 3820 qui comporte 8 processeurs avec HT. Cette page m'a aidé à venir à ma décision.
Désactiver Numa à partir de fichiers de configuration
En résumé, Numa ne vaut la peine que si vous avez plus de 1 prise de CPU (peu importe les cœurs). Il y a un très petit coup de traitement de la puissance sur 1 machine à souche CPU, même avec de multiples noyaux, mais il est à peine perceptible, la plupart des distributions le laissent activé car il fournira un avantage énorme aux serveurs et aux machines avec plus de 1 socket.
Sur un PC avec au plus un processeur, Numa est totalement inutile. Sentez-vous sans le désactiver dans votre propre noyau.
Vous pouvez toujours contrôler la liaison CPU par TaskSet (1).