Cómo verificar si se aplican las configuraciones de NUMA en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo verificar si se han aplicado la configuración de Acceso a Memoria No Uniforme (Non-Uniform Memory Access, NUMA) en Linux. Comprender NUMA es fundamental para optimizar el rendimiento en sistemas multiprocesador.

A través de una serie de pasos prácticos, utilizará comandos esenciales de Linux como numactl y lscpu, y explorará el sistema de archivos /proc/numa para verificar e inspeccionar la configuración de NUMA en su sistema. Este laboratorio le proporcionará las habilidades prácticas para identificar los nodos NUMA, las CPU asociadas y la memoria, lo que le permitirá evaluar eficazmente la configuración de NUMA de su sistema.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicSystemCommandsGroup -.-> linux/man("Manual Access") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/which("Command Locating") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/help -.-> lab-558800{{"Cómo verificar si se aplican las configuraciones de NUMA en Linux"}} linux/man -.-> lab-558800{{"Cómo verificar si se aplican las configuraciones de NUMA en Linux"}} linux/ls -.-> lab-558800{{"Cómo verificar si se aplican las configuraciones de NUMA en Linux"}} linux/cat -.-> lab-558800{{"Cómo verificar si se aplican las configuraciones de NUMA en Linux"}} linux/which -.-> lab-558800{{"Cómo verificar si se aplican las configuraciones de NUMA en Linux"}} linux/apt -.-> lab-558800{{"Cómo verificar si se aplican las configuraciones de NUMA en Linux"}} end

Verificar el estado de NUMA con numactl --hardware

En este paso, comenzaremos a explorar la arquitectura de Acceso a Memoria No Uniforme (Non-Uniform Memory Access, NUMA) en su sistema. NUMA es un diseño de memoria de computadora utilizado en multiprocesamiento, donde el tiempo de acceso a la memoria depende de la ubicación de la memoria en relación con el procesador. Comprender NUMA puede ser importante para optimizar el rendimiento en ciertas aplicaciones.

Utilizaremos el comando numactl para verificar el estado de NUMA. El comando numactl se utiliza para controlar la política de NUMA para procesos o ejecutar un programa con una política de NUMA específica.

Primero, verifiquemos si el comando numactl está disponible en su sistema. Escriba el siguiente comando en su terminal y presione Enter:

which numactl

Si numactl está instalado, verá la ruta al ejecutable, algo como:

/usr/bin/numactl

Si no está instalado, es posible que vea una salida vacía o un mensaje de error. Si no está instalado, puede instalarlo utilizando apt. Dado que tiene privilegios de sudo sin contraseña, puede ejecutar:

sudo apt update
sudo apt install numactl -y

Ahora que numactl está disponible, utilicemos la opción --hardware para mostrar información sobre los nodos NUMA en su sistema. Escriba el siguiente comando y presione Enter:

numactl --hardware

Debería ver una salida similar a esta, que enumera los nodos NUMA disponibles y sus CPU y memoria asociadas:

available: 1 nodes (0)
node 0 cpus: 0 1
node 0 size: 1999 MB
node 0 free: 1800 MB

Esta salida indica que su sistema tiene 1 nodo NUMA (nodo 0). También muestra qué CPU pertenecen a este nodo y la memoria total y libre disponible para él. La salida exacta puede variar según la configuración de la máquina virtual.

Comprender esta salida es el primer paso para trabajar con sistemas NUMA. En los siguientes pasos, exploraremos más formas de inspeccionar la configuración de NUMA.

Haga clic en Continuar para pasar al siguiente paso.

Verificar los nodos NUMA en /proc/numa

En este paso, exploraremos el sistema de archivos /proc para encontrar información sobre los nodos NUMA. El sistema de archivos /proc es un sistema de archivos virtual que proporciona información sobre procesos y otra información del sistema. Es un excelente lugar para encontrar detalles sobre la configuración y el estado de su sistema Linux.

Específicamente, examinaremos el directorio /proc/numa. Este directorio contiene archivos que proporcionan detalles sobre la configuración de NUMA.

Primero, listemos el contenido del directorio /proc/numa utilizando el comando ls. Escriba el siguiente comando en su terminal y presione Enter:

ls /proc/numa

Debería ver una salida similar a esta:

distance  nodes

Esto indica que hay dos archivos o directorios principales relacionados con NUMA en /proc: distance y nodes.

Ahora, examinemos el contenido del archivo /proc/numa/nodes. Este archivo debe enumerar los nodos NUMA disponibles. Podemos usar el comando cat para mostrar el contenido de este archivo. Escriba el siguiente comando y presione Enter:

cat /proc/numa/nodes

Debería ver una salida similar a esta:

0

Esta salida confirma que su sistema tiene al menos un nodo NUMA, que es el nodo 0. Si su sistema tuviera más nodos NUMA, vería una lista de números de nodos aquí (por ejemplo, 0 1).

A continuación, echemos un vistazo al archivo /proc/numa/distance. Este archivo muestra la distancia entre los nodos NUMA, que representa el costo de acceder a la memoria en un nodo diferente. Para un sistema de un solo nodo, la distancia a sí mismo suele ser 10. Escriba el siguiente comando y presione Enter:

cat /proc/numa/distance

Debería ver una salida similar a esta:

0: 10

Esta salida muestra la matriz de distancias. En este caso, 0: 10 significa que la distancia desde el nodo 0 al nodo 0 es 10. En sistemas con múltiples nodos NUMA, vería una matriz que muestra la distancia entre todos los pares de nodos.

Explorar el sistema de archivos /proc es una forma común de recopilar información del sistema en Linux. Ahora ha visto cómo usarlo para verificar los nodos NUMA detectados en su sistema.

Haga clic en Continuar para pasar al siguiente paso.

Inspeccionar detalles de NUMA con lscpu

En este último paso, utilizaremos el comando lscpu para obtener información detallada sobre la arquitectura de la CPU, incluyendo la configuración de NUMA. El comando lscpu muestra información sobre la(s) CPU(s) en el sistema y puede ser muy útil para comprender el hardware de su sistema.

Escriba el siguiente comando en su terminal y presione Enter:

lscpu

Verá una salida completa sobre su CPU. Busque las líneas que mencionen "NUMA". La salida variará según el sistema, pero debería ver algo similar a esto:

Architecture:        x86_64
...
NUMA node(s):        1
NUMA node0 CPU(s):   0,1

Desglosemos las partes relevantes de la salida:

  • NUMA node(s): 1: Esta línea le indica el número total de nodos NUMA detectados en el sistema. En este caso, es 1, lo que coincide con lo que vimos utilizando numactl y comprobando /proc/numa.
  • NUMA node0 CPU(s): 0,1: Esta línea muestra qué núcleos de CPU pertenecen al nodo NUMA 0. Aquí, indica que las CPU 0 y 1 son parte del nodo 0.

El comando lscpu proporciona mucha otra información útil sobre su CPU, como el número de núcleos, hilos, tamaños de caché y características admitidas. No dude en desplazarse por la salida y ver qué otros detalles puede encontrar.

Ahora ha utilizado con éxito tres métodos diferentes (numactl --hardware, /proc/numa y lscpu) para inspeccionar la configuración de NUMA de su sistema. Comprender estas herramientas es esencial para diagnosticar problemas de rendimiento y optimizar aplicaciones en sistemas multiprocesador.

Haga clic en Continuar para completar este laboratorio y revisar su progreso.

Resumen

En este laboratorio, aprendimos cómo verificar si se aplican las configuraciones de NUMA en Linux. Comenzamos utilizando el comando numactl --hardware para mostrar información sobre los nodos NUMA disponibles, incluyendo las CPU y la memoria asociadas. Esto proporcionó una comprensión básica de la arquitectura NUMA en el sistema.

Luego exploramos métodos alternativos para verificar la configuración de NUMA. Esto incluyó la inspección del sistema de archivos /proc/numa, que proporciona información detallada sobre los nodos NUMA y sus estadísticas de memoria. Finalmente, utilizamos el comando lscpu para obtener una visión general completa de la arquitectura de la CPU, incluyendo detalles relacionados con NUMA, lo que confirmó aún más la configuración de NUMA del sistema.