GNU/Linux >> Tutoriels Linux >  >> Linux

CentOS / RHEL 6 :Comment désactiver les pages Transparent Huge (THP)

Les pages volumineuses transparentes (THP) sont activées par défaut dans RHEL 6 pour toutes les applications. Le noyau tentera toujours de satisfaire une allocation de mémoire en utilisant des pages énormes. Si aucune énorme page n'est disponible (en raison de la non disponibilité de la mémoire physique continue par exemple), le noyau reviendra aux pages normales de 4 Ko.

Explicit Huge Pages V/s Transparent Huge Pages

Il peut y avoir deux types de HugePages dans le système :Explicit Huge Pages qui sont alloués explicitement par le paramètre sysctl vm.nr_hugepages et Transparent Huge Pages qui sont alloués automatiquement par le noyau.

Vérifiez si THP est activé

"tuned.service" sur CentOS / RHEL 7 définit transparent_hugepage sur toujours par défaut. Même s'il est désactivé dans la ligne de commande du noyau grub, le service tuned le définira sur "toujours" ‘ pendant le démarrage. Le fichier /sys/kernel/mm/redhat_transparent_hugepage/enabled donne l'état actuel de THP (activé/désactivé). Les valeurs pour /sys/kernel/mm/redhat_transparent_hugepage/enabled peuvent être l'une des suivantes :

always   -  always use THP
never    -  disable THP

La sortie de la commande ci-dessous confirme que le THP est activé ou désactivé sur le système.
Sortie lorsque le THP est activé

# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

Sortie lorsque THP est désactivé

# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

1. Pour désactiver THP au démarrage

1. Ajoutez le paramètre transparent_hugepage=never à la ligne de commande du noyau dans /etc/grub.conf :

# vim /etc/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux 6 (2.6.32-504.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/mapper/vg_os-lv_os rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_os/lv_os  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet transparent_hugepage=never
        initrd /initramfs-2.6.32-504.el6.x86_64.img

2. Ajoutez un petit script donné ci-dessous au fichier /etc/rc.d/rc.local .

# vi /etc/rc.d/rc.local
....
if test −f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test −f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

3. Effectuez un redémarrage du système pour que les modifications prennent effet.

# shutdown -r now

2. Pour désactiver THP à l'exécution

Exécutez les commandes suivantes pour désactiver THP sans redémarrer le système.

# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
Remarque  :L'exécution des commandes ci-dessus n'arrêtera que la création et l'utilisation du nouveau THP. Les THP qui ont été créés et utilisés au moment où les commandes ci-dessus ont été exécutées ne seraient pas désassemblés dans les pages de mémoire normales. Pour se débarrasser complètement de THP, le système doit être redémarré avec THP désactivé au démarrage.

Dépannage

Si Transparent Huge Pages (THP) n'est toujours pas désactivé, continuez et utilisez l'une des options ci-dessous.

1. Désactiver les services tuned/ktune

1. Désactivez les services réglés s'ils réactivent le THP à l'aide de l'une des commandes ci-dessous.

# service tuned stop
# chkconfig tuned off
# service ktune stop
# chkconfig ktune off

OU

# tuned-adm off
Remarque :La commande tuned-adm rétablira tous vos paramètres tels qu'ils étaient avant le démarrage de tuned et désactivera l'exécution des services de réglage au démarrage.

2. Vérifiez que les services ktune et tuned sont désactivés pour démarrer au démarrage :

# chkconfig --list |egrep -i "ktune|tuned"
ktune           0:off   1:off   2:off   3:off    4:off    5:off    6:off
tuned           0:off   1:off   2:off    3:off    4:off    5:off    6:off

2. Créez un profil personnalisé avec THP désactivé

1. Nous allons créer une version personnalisée du profil en cours d'exécution. La version personnalisée désactivera THP. Découvrez quel profil est actif, créez une copie. Dans l'exemple suivant, nous utilisons actuellement le profil débit-performance :

# tuned-adm  active
Current active profile: throughput-performance
Service tuned: enabled, running
Service ktune: enabled, running

2. Créez un profil dupliqué à partir du profil existant. Nous utiliserons le nouveau profil pour désactiver le THP. Pour ce faire, copiez tout le contenu du répertoire de profil actuel vers le répertoire de profil nouvellement créé.

# cd /etc/tune-profiles/
# cp -r /etc/tune-profiles/throughput-performance /etc/tune-profiles/nothp_profile

3. Nous allons maintenant désactiver THP dans le nouveau profil et activer le nouveau profil. Modifiez la ligne ci-dessous :
De :

# vi /etc/tune-profiles/nothp_profile/ktune.sh
set_transparent_hugepages always

À :

# vi /etc/tune-profiles/nothp_profile/ktune.sh
set_transparent_hugepages never

4. Activez le nouveau profil pour que les modifications prennent effet.

# tuned-adm profile nothp_profile
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always [never]
CentOS / RHEL 7 :Comment désactiver les pages Transparent Huge (THP)


Linux
  1. Comment désactiver IPv6 sur CentOS / RHEL 7

  2. Comment désactiver NUMA dans CentOS / RHEL 6,7

  3. Comment désactiver le mode FIPS sur CentOS/RHEL 7

  4. Comment désactiver os-prober dans CentOS/RHEL 7

  5. CentOS / RHEL :Comment désactiver l'historique du shell BASH

Comment désactiver IPv6 sur CentOS 7 / RHEL 7

Comment désactiver IPv6 sur CentOS 8 / RHEL 8

Comment désactiver ACPI dans CentOS/RHEL 7

Comment activer/désactiver les modes SELinux dans RHEL/CentOS

CentOS / RHEL 6 :Comment désactiver IPv6

CentOS / RHEL 5, 6 :comment désactiver NetworkManager