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
Pour créer un pool HugeTLB pour les pages
1 GB
, activez les options de noyaudefault_hugepagesz=1G
ethugepagesz=1G
:grubby --update-kernel=ALL --args="default_hugepagesz=1G hugepagesz=1G"
# grubby --update-kernel=ALL --args="default_hugepagesz=1G hugepagesz=1G"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez un nouveau fichier appelé
hugetlb-gigantic-pages.service
dans le répertoire/usr/lib/systemd/system/
et ajoutez le contenu suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
reserve_pages 2 node0 reserve_pages 1 node1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un script exécutable :
chmod +x /usr/lib/systemd/hugetlb-reserve-pages.sh
# chmod +x /usr/lib/systemd/hugetlb-reserve-pages.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Activer la réservation de démarrage anticipé :
systemctl enable hugetlb-gigantic-pages
# systemctl enable hugetlb-gigantic-pages
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
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 pages1 GB
est d'utiliser ce scripthugetlb-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.