Transparent Huge Pages (THP) sind in RHEL 6 standardmäßig für alle Anwendungen aktiviert. Der Kernel wird immer versuchen, eine Speicherzuweisung mithilfe von Hugepages zu erfüllen. Wenn keine Hugepages verfügbar sind (z. B. aufgrund der Nichtverfügbarkeit von physisch kontinuierlichem Speicher), greift der Kernel auf die regulären 4-KB-Seiten zurück.
Explizite Huge Pages vs. transparente Huge Pages
Es kann zwei Arten von HugePages im System geben:Explizite Huge Pages die explizit durch den vm.nr_hugepages sysctl-Parameter und Transparent Huge Pages zugewiesen werden die vom Kernel automatisch zugewiesen werden.
Überprüfen Sie, ob THP aktiviert ist
„tuned.service“ auf CentOS / RHEL 7 setzt die transparent_hugepage standardmäßig auf immer. Selbst wenn es in der Grub-Kernel-Befehlszeile deaktiviert ist, wird es vom optimierten Dienst auf „immer“ gesetzt ‘ während des Bootens. Die Datei /sys/kernel/mm/redhat_transparent_hugepage/enabled gibt den aktuellen Status von THP an (aktiviert/deaktiviert). Die Werte für /sys/kernel/mm/redhat_transparent_hugepage/enabled können einer der folgenden sein:
always - always use THP never - disable THP
Bestätigen Sie unter der Befehlsausgabe, dass THP auf dem System aktiviert oder deaktiviert ist.
Ausgabe, wenn THP aktiviert ist
# cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never
Ausgabe, wenn THP deaktiviert ist
# cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never]
1. Zum Deaktivieren von THP beim Booten
1. Hängen Sie den Parameter transparent_hugepage=never an zur Kernel-Kommandozeile in /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. Fügen Sie der Datei /etc/rc.d/rc.local ein kleines Skript hinzu, das unten angegeben ist .
# 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. Starten Sie das System neu, damit die Änderungen wirksam werden.
# shutdown -r now
2. Um THP zur Laufzeit zu deaktivieren
Führen Sie die folgenden Befehle aus, um THP zu deaktivieren, ohne das System neu zu starten.
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled # echo never > /sys/kernel/mm/redhat_transparent_hugepage/defragHinweis :Durch Ausführen der obigen Befehle wird nur die Erstellung und Verwendung des neuen THP beendet. Die THP, die zum Zeitpunkt der Ausführung der obigen Befehle erstellt und verwendet wurden, würden nicht in die regulären Speicherseiten zerlegt. Um THP vollständig zu entfernen, sollte das System neu gestartet werden, wobei THP beim Booten deaktiviert ist.
Fehlerbehebung
Wenn Transparent Huge Pages (THP) immer noch nicht deaktiviert ist, fahren Sie fort und verwenden Sie eine der folgenden Optionen.
1. Tuned/ktune-Dienste deaktivieren
1. Deaktivieren Sie die optimierten Dienste, wenn THP mit einem der folgenden Befehle wieder aktiviert wird.
# service tuned stop # chkconfig tuned off # service ktune stop # chkconfig ktune off
ODER
# tuned-adm offHinweis :Der Befehl tuned-adm setzt alle Ihre Einstellungen auf den Stand vor dem Start von tuned zurück und deaktiviert die Ausführung der Tuning-Dienste beim Booten.
2. Stellen Sie sicher, dass ktune und optimierte Dienste deaktiviert sind, um beim Booten zu starten:
# 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. Erstellen Sie ein benutzerdefiniertes abgestimmtes Profil mit deaktiviertem THP
1. Wir erstellen eine angepasste Version des aktuell ausgeführten Profils. Die angepasste Version deaktiviert THP. Finden Sie heraus, welches Profil aktiv ist, erstellen Sie eine Kopie. Im folgenden Beispiel verwenden wir derzeit das Durchsatz-Leistungsprofil:
# tuned-adm active Current active profile: throughput-performance Service tuned: enabled, running Service ktune: enabled, running
2. Erstellen Sie ein doppeltes Profil aus dem vorhandenen Profil. Wir werden das neue Profil verwenden, um den THP zu deaktivieren. Kopieren Sie dazu den gesamten Inhalt aus dem aktuellen Profilverzeichnis in das neu erstellte Profilverzeichnis.
# cd /etc/tune-profiles/ # cp -r /etc/tune-profiles/throughput-performance /etc/tune-profiles/nothp_profile
3. Wir werden jetzt THP im neuen Profil deaktivieren und das neue Profil aktivieren. Ändern Sie die unten gezeigte Zeile:
From :
# vi /etc/tune-profiles/nothp_profile/ktune.sh set_transparent_hugepages always
An :
# vi /etc/tune-profiles/nothp_profile/ktune.sh set_transparent_hugepages never
4. Aktivieren Sie das neue Profil, damit die Änderungen wirksam werden.
# tuned-adm profile nothp_profile
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled always [never]CentOS / RHEL 7 :So deaktivieren Sie Transparent Huge Pages (THP)