Transparentní obrovské stránky (THP) jsou standardně povoleny v RHEL 6 pro všechny aplikace. Jádro se vždy pokusí uspokojit alokaci paměti pomocí hugepages. Pokud nejsou k dispozici žádné velké stránky (například kvůli nedostupnosti fyzicky průběžné paměti), jádro se vrátí zpět na běžné stránky o velikosti 4 kB.
Explicitní obrovské stránky versus transparentní obrovské stránky
V systému mohou být dva typy obrovských stránek:Explicitní obrovské stránky které jsou alokovány explicitně parametrem vm.nr_hugepages sysctl a Transparent Huge Pages které jsou alokovány automaticky jádrem.
Ověřte, zda je povoleno THP
„tuned.service“ na CentOS / RHEL 7 nastaví transparent_hugepage jako výchozí vždy. I když je zakázána v příkazovém řádku jádra grub, vyladěná služba jej nastaví na „vždy ‘ během spouštění. Soubor /sys/kernel/mm/redhat_transparent_hugepage/enabled udává aktuální stav THP (povoleno/zakázáno). Hodnoty pro /sys/kernel/mm/redhat_transparent_hugepage/enabled mohou být některé z následujících:
always - always use THP never - disable THP
Níže uvedený výstup příkazu potvrzuje, že THP jsou v systému povoleny nebo zakázány.
Výstup, když je THP povoleno
# cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never
Výstup, když je THP zakázáno
# cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never]
1. Chcete-li zakázat THP při spouštění
1. Připojte parametr transparent_hugepage=never na příkazový řádek jádra v /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. Přidejte malý skript uvedený níže do souboru /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. Restartujte systém, aby se změny projevily.
# shutdown -r now
2. Chcete-li zakázat THP za běhu
Spuštěním následujících příkazů deaktivujete THP bez restartování systému.
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled # echo never > /sys/kernel/mm/redhat_transparent_hugepage/defragPoznámka :Spuštěním výše uvedených příkazů se zastaví pouze vytváření a používání nového THP. THP, které byly vytvořeny a používány v okamžiku spuštění výše uvedených příkazů, nebudou rozebrány do běžných stránek paměti. Chcete-li se úplně zbavit THP, měl by být systém restartován s deaktivovaným THP při spouštění.
Odstraňování problémů
Pokud funkce Transparent Huge Pages (THP) stále není deaktivována, pokračujte a použijte jednu z níže uvedených možností.
1. Zakázat naladěné/tune služby
1. Zakažte vyladěné služby, pokud znovu povolíte THP pomocí některého z níže uvedených příkazů.
# service tuned stop # chkconfig tuned off # service ktune stop # chkconfig ktune off
NEBO
# tuned-adm offPoznámka :Příkaz tuned-adm vrátí všechna vaše nastavení do stavu před spuštěním ladění a zakáže spouštění služeb ladění při spouštění.
2. Ověřte, že ktune a vyladěné služby jsou zakázány, aby se spustily při startu:
# 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. Vytvořte si přizpůsobený vyladěný profil se zakázaným THP
1. Vytvoříme upravenou verzi aktuálně spuštěného profilu. Přizpůsobená verze zakáže THP. Zjistěte, který profil je aktivní, vytvořte kopii. V následujícím příkladu aktuálně používáme profil propustnost-výkon:
# tuned-adm active Current active profile: throughput-performance Service tuned: enabled, running Service ktune: enabled, running
2. Vytvořte duplicitní profil ze stávajícího profilu. K deaktivaci THP použijeme nový profil. Chcete-li to provést, zkopírujte veškerý obsah z aktuálního adresáře profilu do nově vytvořeného adresáře profilu.
# cd /etc/tune-profiles/ # cp -r /etc/tune-profiles/throughput-performance /etc/tune-profiles/nothp_profile
3. Nyní zakážeme THP v novém profilu a aktivujeme nový profil. Změňte řádek zobrazený níže:
Od :
# vi /etc/tune-profiles/nothp_profile/ktune.sh set_transparent_hugepages always
Komu :
# vi /etc/tune-profiles/nothp_profile/ktune.sh set_transparent_hugepages never
4. Aktivujte nový profil, aby se změny projevily.
# tuned-adm profile nothp_profile
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled always [never]CentOS / RHEL 7 :Jak deaktivovat transparentní obrovské stránky (THP)