Acceso a memoria no uniforme o Arquitectura de memoria no uniforme (NUMA) es un diseño de memoria física utilizado en la arquitectura SMP (multiprocesadores), donde el tiempo de acceso a la memoria depende de la ubicación de la memoria en relación con un procesador. Bajo NUMA, un procesador puede acceder a su propia memoria local más rápido que la memoria no local, es decir, la memoria local de otro procesador o la memoria compartida entre procesadores.
En un sistema NUMA, los procesadores, la memoria y las E/S se agrupan en celdas. Las características de latencia y ancho de banda de la comunicación dentro de una celda son "rápidas", mientras que salir de la celda es "lenta". Dado que la memoria en los sistemas NUMA se distribuye físicamente pero se comparte lógicamente, estos sistemas ofrecen un mejor rendimiento a las aplicaciones que están optimizadas para usar sus características. Para las aplicaciones no optimizadas, aún ofrecen un mejor rendimiento ya que el comportamiento predeterminado está diseñado para ser benigno, si no beneficioso, y aún tienen acceso a recursos compartidos mucho más grandes de memoria, CPU y espacio en disco.
Deshabilitar NUMA
1. Para deshabilitar NUMA, agregue numa=off a la línea del núcleo en grub.conf archivo, por ejemplo:
a. Para RHEL 6
Edite la línea del núcleo en /boot/grub/grub.conf archivo
# vi /boot/grub/grub.conf kernel /vmlinuz-2.6.39-400.215.10.EL ro root=/dev/VolGroup00/LogVol00 numa=off
Edite la línea del kernel en el archivo /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
También asegúrese de reconstruir el archivo de configuración de GRUB usando el siguiente comando en el caso de RHEL/CentOS 7.
# grub2-mkconfig -o /etc/grub2.cfg
2. Reinicie el servidor para que los cambios surtan efecto.
# shutdown -r now
Verificar
Para verificar después de reiniciar, verifique el archivo /proc/cmdline para ver las opciones de línea de comandos de GRUB utilizadas. (El siguiente ejemplo es 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 estuviera activo, habría más de un nodo en la lista.