39.3. Configuration de HugeTLB au démarrage


La taille de page prise en charge par le sous-système HugeTLB dépend de l'architecture. L'architecture x86_64 prend en charge 2 MB huge pages et 1 GB gigantic pages.

Cette procédure décrit comment réserver une page 1 GB au moment du démarrage.

Procédure

  1. Pour créer un pool HugeTLB pour les pages 1 GB, activez les options de noyau default_hugepagesz=1G et hugepagesz=1G:

    # grubby --update-kernel=ALL --args="default_hugepagesz=1G hugepagesz=1G"
    Copy to Clipboard Toggle word wrap
  2. Créez un nouveau fichier appelé hugetlb-gigantic-pages.service dans le répertoire /usr/lib/systemd/system/ et ajoutez le contenu suivant :

    [Unit]
    Description=HugeTLB Gigantic Pages Reservation
    DefaultDependencies=no
    Before=dev-hugepages.mount
    ConditionPathExists=/sys/devices/system/node
    ConditionKernelCommandLine=hugepagesz=1G
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/usr/lib/systemd/hugetlb-reserve-pages.sh
    
    [Install]
    WantedBy=sysinit.target
    Copy to Clipboard Toggle word wrap
  3. Créez un nouveau fichier appelé hugetlb-reserve-pages.sh dans le répertoire /usr/lib/systemd/ et ajoutez le contenu suivant :

    En ajoutant le contenu suivant, remplacez number_of_pages par le nombre de pages de 1GB que vous souhaitez réserver, et node par le nom du nœud sur lequel réserver ces pages.

    #!/bin/sh
    
    nodes_path=/sys/devices/system/node/
    if [ ! -d $nodes_path ]; then
        echo "ERROR: $nodes_path does not exist"
        exit 1
    fi
    
    reserve_pages()
    {
        echo $1 > $nodes_path/$2/hugepages/hugepages-1048576kB/nr_hugepages
    }
    
    reserve_pages number_of_pages node
    Copy to Clipboard Toggle word wrap

    Par exemple, pour réserver deux pages 1 GB sur node0 et une page de 1GB sur node1, remplacez number_of_pages par 2 pour node0 et 1 pour node1:

    reserve_pages 2 node0
    reserve_pages 1 node1
    Copy to Clipboard Toggle word wrap
  4. Créer un script exécutable :

    # chmod +x /usr/lib/systemd/hugetlb-reserve-pages.sh
    Copy to Clipboard Toggle word wrap
  5. Activer la réservation de démarrage anticipé :

    # systemctl enable hugetlb-gigantic-pages
    Copy to Clipboard Toggle word wrap
Note
  • Vous pouvez essayer de réserver davantage de pages de 1 Go au moment de l'exécution en écrivant à tout moment sur nr_hugepages. Cependant, ces réservations peuvent échouer en raison de la fragmentation de la mémoire. La manière la plus fiable de réserver des pages 1 GB est d'utiliser ce script hugetlb-reserve-pages.sh, qui s'exécute au début du démarrage.
  • La réservation de pages volumineuses statiques peut effectivement réduire la quantité de mémoire disponible pour le système et l'empêcher d'utiliser correctement toute sa capacité de mémoire. Bien qu'un pool de pages volumineuses réservées correctement dimensionné puisse être bénéfique aux applications qui l'utilisent, un pool de pages volumineuses réservées surdimensionné ou inutilisé finira par nuire aux performances globales du système. Lorsque vous définissez un pool d'énormes pages réservées, assurez-vous que le système peut utiliser correctement toute sa capacité de mémoire.
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat