Comment vérifier si les pages géantes (hugepages) du noyau sont activées 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 pages géantes (hugepages) du noyau sont activées et configurées sur un système Linux. Les pages géantes sont une fonctionnalité du noyau qui peut améliorer les performances des applications gourmandes en mémoire en utilisant des pages mémoire plus grandes.

À travers une série d'étapes pratiques, vous explorerez différentes méthodes pour vérifier les paramètres des pages géantes. Vous commencerez par examiner le fichier /proc/meminfo pour afficher les statistiques actuelles des pages géantes, y compris le nombre total, le nombre de pages géantes libres et réservées, ainsi que la taille des pages géantes. Ensuite, vous utiliserez la commande sysctl pour vérifier le paramètre du noyau vm.nr_hugepages, qui indique le nombre souhaité de pages géantes. Enfin, vous inspecterez le répertoire /sys/kernel/mm pour mieux comprendre la configuration des pages géantes dans le sous-système de gestion de mémoire du noyau. En effectuant ces étapes, vous comprendrez parfaitement comment déterminer l'état des pages géantes sur votre système Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/ls -.-> lab-558793{{"Comment vérifier si les pages géantes (hugepages) du noyau sont activées sous Linux"}} linux/cat -.-> lab-558793{{"Comment vérifier si les pages géantes (hugepages) du noyau sont activées sous Linux"}} linux/cd -.-> lab-558793{{"Comment vérifier si les pages géantes (hugepages) du noyau sont activées sous Linux"}} linux/grep -.-> lab-558793{{"Comment vérifier si les pages géantes (hugepages) du noyau sont activées sous Linux"}} linux/env -.-> lab-558793{{"Comment vérifier si les pages géantes (hugepages) du noyau sont activées sous Linux"}} end

Vérifier les pages géantes (hugepages) dans /proc/meminfo

Dans cette étape, nous allons explorer comment vérifier la configuration actuelle des pages géantes sur votre système Linux. Les pages géantes sont une fonctionnalité du noyau Linux qui permet au système d'utiliser des pages mémoire plus grandes que la taille par défaut de 4 Ko. Cela peut améliorer les performances des applications qui utilisent de grandes quantités de mémoire, telles que les bases de données et les logiciels de virtualisation.

Nous pouvons trouver des informations sur les pages géantes dans le fichier /proc/meminfo. Ce fichier contient diverses statistiques liées à la mémoire du système.

Ouvrez le terminal si vous ne l'avez pas déjà fait. Vous pouvez le faire en cliquant sur l'icône Xfce Terminal sur le côté gauche du bureau.

Maintenant, affichons le contenu de /proc/meminfo en utilisant la commande cat. La commande cat est utilisée pour afficher le contenu des fichiers.

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

cat /proc/meminfo

Cette commande affichera tout le contenu du fichier /proc/meminfo dans votre terminal. Vous verrez beaucoup d'informations sur la mémoire de votre système.

Pour rechercher spécifiquement des informations sur les pages géantes, nous pouvons utiliser la commande grep pour filtrer la sortie de cat. La commande grep recherche les lignes qui correspondent à un modèle spécifique.

Tapez la commande suivante et appuyez sur Entrée :

cat /proc/meminfo | grep HugePages

Le symbole | s'appelle un tuyau (pipe). Il prend la sortie de la commande de gauche (cat /proc/meminfo) et l'envoie en tant qu'entrée à la commande de droite (grep HugePages). De cette façon, grep ne recherche que dans la sortie de cat.

Vous devriez voir des lignes similaires à celles-ci (les nombres exacts peuvent varier) :

HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

Analysons ce que signifient ces lignes :

  • HugePages_Total : Le nombre total de pages géantes configurées sur le système.
  • HugePages_Free : Le nombre de pages géantes actuellement libres et disponibles pour utilisation.
  • HugePages_Rsvd : Le nombre de pages géantes réservées pour une utilisation future.
  • HugePages_Surp : Le nombre de pages géantes qui dépasse le paramètre vm.nr_hugepages (nous examinerons cela à l'étape suivante).
  • Hugepagesize : La taille de chaque page géante. Sur la plupart des systèmes, cela correspond à 2048 Ko (2 Mo).

Dans cet environnement, la valeur par défaut est probablement de 0 page géante au total, ce qui est courant pour les systèmes à usage général.

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

Vérifier les paramètres des pages géantes (hugepages) avec sysctl vm.nr_hugepages

Dans l'étape précédente, nous avons examiné le fichier /proc/meminfo pour voir l'utilisation actuelle des pages géantes. Maintenant, utilisons la commande sysctl pour vérifier le paramètre du noyau qui contrôle le nombre total de pages géantes.

La commande sysctl est utilisée pour afficher et modifier les paramètres du noyau à l'exécution. Les paramètres du noyau sont des paramètres qui influencent le comportement du noyau Linux.

Le paramètre spécifique qui nous intéresse est vm.nr_hugepages. Ce paramètre détermine le nombre total de pages géantes que le noyau doit réserver.

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

sysctl vm.nr_hugepages

Cette commande affichera la valeur actuelle du paramètre du noyau vm.nr_hugepages.

Vous devriez voir une sortie similaire à celle-ci :

vm.nr_hugepages = 0

Cette sortie confirme que le paramètre actuel pour le nombre total de pages géantes est de 0. Cela correspond à ce que nous avons vu dans /proc/meminfoHugePages_Total était également égal à 0.

La commande sysctl est un outil puissant pour inspecter et modifier de nombreux aspects du comportement du noyau. Bien que nous ne regardions ici que vm.nr_hugepages, vous pouvez explorer de nombreux autres paramètres en utilisant sysctl -a.

Comprendre les paramètres du noyau tels que vm.nr_hugepages est important pour ajuster les performances du système pour des charges de travail spécifiques.

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

Inspecter la configuration des pages géantes (hugepages) dans /sys/kernel/mm

Dans cette étape finale, nous allons explorer un autre emplacement où les informations de configuration des pages géantes sont disponibles : le système de fichiers /sys. Le système de fichiers /sys fournit une interface vers les structures de données du noyau, nous permettant d'inspecter et parfois de modifier les objets du noyau.

Les informations liées aux pages géantes peuvent être trouvées sous /sys/kernel/mm/transparent_hugepage. Les pages géantes transparentes (Transparent Hugepages - THP) sont une fonctionnalité qui tente d'utiliser automatiquement les pages géantes sans nécessiter de configuration explicite des applications.

Naviguons dans ce répertoire en utilisant la commande cd. cd signifie "change directory" (changer de répertoire).

Tapez la commande suivante et appuyez sur Entrée :

cd /sys/kernel/mm/transparent_hugepage

Maintenant que nous sommes dans le répertoire /sys/kernel/mm/transparent_hugepage, listons les fichiers de ce répertoire en utilisant la commande ls. La commande ls liste le contenu d'un répertoire.

Tapez la commande suivante et appuyez sur Entrée :

ls

Vous devriez voir une sortie similaire à celle-ci :

defrag  enabled  khugepaged  numa_defrag  shmem_enabled  split_huge_pmd_size  split_huge_pte_size

Ces fichiers représentent différentes options de configuration et indicateurs d'état pour les pages géantes transparentes.

Regardons le contenu du fichier enabled en utilisant la commande cat. Ce fichier indique si les pages géantes transparentes sont activées, désactivées ou en mode 'madvise' (où les applications peuvent conseiller le noyau sur l'utilisation des pages géantes).

Tapez la commande suivante et appuyez sur Entrée :

cat enabled

Vous devriez voir une sortie similaire à celle-ci :

[always] madvise never

La sortie indique le paramètre actuel. [always] signifie que les THP sont actuellement activées pour toutes les mappages.

Maintenant, regardons le fichier defrag. Ce fichier contrôle si le noyau doit tenter de défragmenter la mémoire pour rendre les pages géantes disponibles.

Tapez la commande suivante et appuyez sur Entrée :

cat defrag

Vous devriez voir une sortie similaire à celle-ci :

[always] defer defer+madvise madvise never

Encore une fois, [always] indique le paramètre actuel de la défragmentation de mémoire liée aux THP.

Le système de fichiers /sys est une ressource précieuse pour comprendre l'état interne et la configuration du noyau. Explorer des répertoires tels que /sys/kernel/mm peut fournir des informations approfondies sur la gestion de la mémoire.

Vous avez maintenant exploré avec succès les informations sur les pages géantes en utilisant trois méthodes différentes : /proc/meminfo, sysctl et le système de fichiers /sys.

Cliquez sur Continuer pour terminer le laboratoire.

Résumé

Dans ce laboratoire, nous avons appris à vérifier si les pages géantes (hugepages) du noyau sont activées et configurées sur un système Linux. Nous avons exploré trois méthodes pour y parvenir. Tout d'abord, nous avons examiné le fichier /proc/meminfo en utilisant cat et grep pour afficher les statistiques clés des pages géantes telles que HugePages_Total, HugePages_Free et Hugepagesize.

Ensuite, nous aurions normalement vérifié les paramètres des pages géantes en utilisant sysctl vm.nr_hugepages et inspecté la configuration des pages géantes dans le répertoire /sys/kernel/mm, bien que les étapes détaillées de ces méthodes n'aient pas été entièrement fournies dans le contenu fourni. Ces étapes démontrent collectivement comment déterminer l'état actuel et la configuration des pages géantes sur un système Linux.