Comment vérifier si les paramètres NUMA sont appliqués sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à vérifier si les paramètres d'accès mémoire non uniforme (Non-Uniform Memory Access - NUMA) sont appliqués dans Linux. Comprendre le NUMA est essentiel pour optimiser les performances sur les systèmes multiprocesseurs.

À travers une série d'étapes pratiques, vous utiliserez des commandes Linux essentielles telles que numactl et lscpu, et explorerez le système de fichiers /proc/numa pour vérifier et inspecter la configuration NUMA de votre système. Ce laboratoire vous fournira les compétences pratiques nécessaires pour identifier les nœuds NUMA, les processeurs (CPUs) associés et la mémoire, vous permettant ainsi d'évaluer efficacement la configuration NUMA de votre système.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) 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{{"Comment vérifier si les paramètres NUMA sont appliqués sous Linux"}} linux/man -.-> lab-558800{{"Comment vérifier si les paramètres NUMA sont appliqués sous Linux"}} linux/ls -.-> lab-558800{{"Comment vérifier si les paramètres NUMA sont appliqués sous Linux"}} linux/cat -.-> lab-558800{{"Comment vérifier si les paramètres NUMA sont appliqués sous Linux"}} linux/which -.-> lab-558800{{"Comment vérifier si les paramètres NUMA sont appliqués sous Linux"}} linux/apt -.-> lab-558800{{"Comment vérifier si les paramètres NUMA sont appliqués sous Linux"}} end

Vérifier l'état NUMA avec numactl --hardware

Dans cette étape, nous allons commencer à explorer l'architecture d'accès mémoire non uniforme (Non-Uniform Memory Access - NUMA) de votre système. Le NUMA est une conception de mémoire informatique utilisée en multiprocessus, où le temps d'accès à la mémoire dépend de l'emplacement de la mémoire par rapport au processeur. Comprendre le NUMA peut être important pour optimiser les performances de certaines applications.

Nous allons utiliser la commande numactl pour vérifier l'état NUMA. La commande numactl est utilisée pour contrôler la politique NUMA des processus ou pour exécuter un programme avec une politique NUMA spécifique.

Tout d'abord, vérifions si la commande numactl est disponible sur votre système. Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

which numactl

Si numactl est installé, vous verrez le chemin vers l'exécutable, quelque chose comme :

/usr/bin/numactl

Si ce n'est pas installé, vous pourriez voir une sortie vide ou un message d'erreur. Si ce n'est pas installé, vous pouvez l'installer en utilisant apt. Étant donné que vous avez les privilèges sudo sans mot de passe, vous pouvez exécuter :

sudo apt update
sudo apt install numactl -y

Maintenant que numactl est disponible, utilisons l'option --hardware pour afficher des informations sur les nœuds NUMA de votre système. Tapez la commande suivante et appuyez sur Entrée :

numactl --hardware

Vous devriez voir une sortie similaire à celle-ci, qui répertorie les nœuds NUMA disponibles et leurs processeurs (CPUs) et mémoire associés :

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

Cette sortie indique que votre système a 1 nœud NUMA (nœud 0). Elle montre également quels processeurs appartiennent à ce nœud et la mémoire totale et disponible associée. La sortie exacte peut varier en fonction de la configuration de la machine virtuelle.

Comprendre cette sortie est la première étape pour travailler avec les systèmes NUMA. Dans les étapes suivantes, nous explorerons d'autres façons d'inspecter la configuration NUMA.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier les nœuds NUMA dans /proc/numa

Dans cette étape, nous allons explorer le système de fichiers /proc pour trouver des informations sur les nœuds NUMA. Le système de fichiers /proc est un système de fichiers virtuel qui fournit des informations sur les processus et d'autres informations système. C'est un excellent endroit pour trouver des détails sur la configuration et l'état de votre système Linux.

Plus précisément, nous allons examiner le répertoire /proc/numa. Ce répertoire contient des fichiers qui fournissent des détails sur la configuration NUMA.

Tout d'abord, listons le contenu du répertoire /proc/numa en utilisant la commande ls. Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

ls /proc/numa

Vous devriez voir une sortie similaire à celle-ci :

distance  nodes

Cela indique qu'il y a deux fichiers ou répertoires principaux liés au NUMA dans /proc : distance et nodes.

Maintenant, examinons le contenu du fichier /proc/numa/nodes. Ce fichier devrait répertorier les nœuds NUMA disponibles. Nous pouvons utiliser la commande cat pour afficher le contenu de ce fichier. Tapez la commande suivante et appuyez sur Entrée :

cat /proc/numa/nodes

Vous devriez voir une sortie similaire à celle-ci :

0

Cette sortie confirme que votre système a au moins un nœud NUMA, qui est le nœud 0. Si votre système avait plus de nœuds NUMA, vous verriez ici une liste de numéros de nœuds (par exemple, 0 1).

Ensuite, examinons le fichier /proc/numa/distance. Ce fichier montre la distance entre les nœuds NUMA, qui représente le coût d'accès à la mémoire sur un autre nœud. Pour un système à un seul nœud, la distance à lui-même est généralement de 10. Tapez la commande suivante et appuyez sur Entrée :

cat /proc/numa/distance

Vous devriez voir une sortie similaire à celle-ci :

0: 10

Cette sortie montre la matrice des distances. Dans ce cas, 0: 10 signifie que la distance du nœud 0 au nœud 0 est de 10. Sur les systèmes avec plusieurs nœuds NUMA, vous verriez une matrice montrant la distance entre toutes les paires de nœuds.

Explorer le système de fichiers /proc est une méthode courante pour collecter des informations système sous Linux. Vous savez maintenant comment l'utiliser pour vérifier les nœuds NUMA détectés sur votre système.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter les détails NUMA avec lscpu

Dans cette étape finale, nous allons utiliser la commande lscpu pour obtenir des informations détaillées sur l'architecture du processeur (CPU), y compris la configuration NUMA. La commande lscpu affiche des informations sur le ou les processeurs du système et peut être très utile pour comprendre le matériel de votre système.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

lscpu

Vous verrez une sortie complète sur votre processeur. Recherchez les lignes qui mentionnent "NUMA". La sortie variera en fonction du système, mais vous devriez voir quelque chose de similaire à ceci :

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

Décortiquons les parties pertinentes de la sortie :

  • NUMA node(s): 1 : Cette ligne vous indique le nombre total de nœuds NUMA détectés sur le système. Dans ce cas, c'est 1, ce qui correspond à ce que nous avons vu en utilisant numactl et en vérifiant /proc/numa.
  • NUMA node0 CPU(s): 0,1 : Cette ligne montre quels cœurs de processeur appartiennent au nœud NUMA 0. Ici, cela indique que les processeurs 0 et 1 font partie du nœud 0.

La commande lscpu fournit de nombreuses autres informations utiles sur votre processeur, telles que le nombre de cœurs, de threads, les tailles de cache et les fonctionnalités prises en charge. N'hésitez pas à faire défiler la sortie et à voir quels autres détails vous pouvez trouver.

Vous avez maintenant utilisé avec succès trois méthodes différentes (numactl --hardware, /proc/numa et lscpu) pour inspecter la configuration NUMA de votre système. Comprendre ces outils est essentiel pour diagnostiquer les problèmes de performance et optimiser les applications sur les systèmes multiprocesseurs.

Cliquez sur Continuer pour terminer ce laboratoire et revoir votre progression.

Résumé

Dans ce laboratoire, nous avons appris à vérifier si les paramètres NUMA sont appliqués sous Linux. Nous avons commencé par utiliser la commande numactl --hardware pour afficher des informations sur les nœuds NUMA disponibles, y compris les processeurs (CPUs) et la mémoire associés. Cela a fourni une compréhension de base de l'architecture NUMA sur le système.

Nous avons ensuite exploré des méthodes alternatives pour vérifier la configuration NUMA. Cela incluait l'inspection du système de fichiers /proc/numa, qui fournit des informations détaillées sur les nœuds NUMA et leurs statistiques de mémoire. Enfin, nous avons utilisé la commande lscpu pour obtenir un aperçu complet de l'architecture du processeur, y compris les détails liés au NUMA, confirmant ainsi davantage la configuration NUMA du système.