GNU/Linux >> Znalost Linux >  >> Linux

CentOS / RHEL 6:Jak zakázat transparentní obrovské stránky (THP)

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/defrag
Pozná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 off
Pozná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)


Linux
  1. Jak deaktivovat NetworkManager na CentOS / RHEL 7

  2. CentOS / RHEL 7:Jak zakázat transparentní obrovské stránky (THP)

  3. CentOS / RHEL 6,7 :Jak nakonfigurovat obrovské stránky

  1. Jak deaktivovat režim FIPS na CentOS/RHEL 7

  2. Jak povolit/zakázat režimy SELinux v RHEL/CentOS

  3. CentOS / RHEL 6 :Jak deaktivovat IPv6

  1. Jak zakázat IPv6 na CentOS / RHEL 7

  2. CentOS / RHEL :Jak zakázat historii shellu BASH

  3. CentOS / RHEL 5, 6 :jak deaktivovat NetworkManager