Accès mémoire non uniforme ou architecture de mémoire non uniforme (NUMA) est une conception de mémoire physique utilisée dans l'architecture SMP (multiprocesseurs), où le temps d'accès à la mémoire dépend de l'emplacement de la mémoire par rapport à un processeur. Sous NUMA, un processeur peut accéder à sa propre mémoire locale plus rapidement qu'à la mémoire non locale, c'est-à-dire à la mémoire locale d'un autre processeur ou à la mémoire partagée entre les processeurs.
Dans un système NUMA, les processeurs, la mémoire et les E/S sont regroupés en cellules. Les caractéristiques de latence et de bande passante de la communication à l'intérieur d'une cellule sont « rapides » tandis que la sortie d'une cellule est « lente ». Étant donné que la mémoire des systèmes NUMA est physiquement distribuée mais logiquement partagée, ces systèmes offrent de meilleures performances aux applications optimisées pour utiliser leurs fonctionnalités. Pour les applications non optimisées, elles offrent toujours de meilleures performances car le comportement par défaut est conçu pour être bénin, voire bénéfique, et elles ont toujours accès à des ressources partagées beaucoup plus importantes de mémoire, de processeurs et d'espace disque.
Désactiver NUMA
1. Pour désactiver NUMA, ajoutez numa=off à la ligne du noyau dans grub.conf fichier, par exemple :
a. Pour RHEL 6
Modifiez la ligne du noyau dans /boot/grub/grub.conf fichier
# vi /boot/grub/grub.conf kernel /vmlinuz-2.6.39-400.215.10.EL ro root=/dev/VolGroup00/LogVol00 numa=off
Modifiez la ligne du noyau dans le fichier /etc/default/grub
# vi /etc/default/grub GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel_vm-210/root rd.lvm.lv=rhel_vm-210/swap vconsole.font=latarcyrheb-sun16 crashkernel=auto vconsole.keymap=us rhgb quiet numa=off
Assurez-vous également de reconstruire le fichier de configuration GRUB à l'aide de la commande ci-dessous dans le cas de RHEL/CentOS 7.
# grub2-mkconfig -o /etc/grub2.cfg
2. Redémarrez le serveur pour que les modifications prennent effet.
# shutdown -r now
Vérifier
Pour vérifier après le redémarrage, vérifiez le fichier /proc/cmdline pour voir les options de ligne de commande GRUB utilisées. (L'exemple ci-dessous provient de RHEL 6).
# cat /proc/cmdline ro root=/dev/VolGroup00/LogVol00 numa=off
# numactl -H available: 1 nodes (0) node 0 size: 4195 MB node 0 free: 3304 MB node distances: node 0 0: 10
Si NUMA était actif, il y aurait plus d'un nœud répertorié.