GNU/Linux >> Linux Esercitazione >  >> Linux

CentOS / RHEL 6:come disabilitare le pagine trasparenti enormi (THP)

Le Transparent Huge Pages (THP) sono abilitate per impostazione predefinita in RHEL 6 per tutte le applicazioni. Il kernel tenterà sempre di soddisfare un'allocazione di memoria usando hugepages. Se non sono disponibili pagine enormi (a causa della non disponibilità di memoria continua fisica, ad esempio), il kernel tornerà alle normali pagine da 4 KB.

Pagine enormi esplicite V/s Pagine enormi trasparenti

Possono esserci due tipi di HugePages nel sistema:Explicit Huge Pages che sono allocati esplicitamente dal parametro sysctl vm.nr_hugepages e Pagine enormi trasparenti che vengono allocati automaticamente dal kernel.

Verifica se THP è abilitato

"tuned.service" su CentOS / RHEL 7 imposta transparent_hugepage su sempre per impostazione predefinita. Anche se è disabilitato nella riga di comando del kernel grub, il servizio ottimizzato lo imposterà su "sempre ' durante l'avvio. Il file /sys/kernel/mm/redhat_transparent_hugepage/enabled fornisce lo stato attuale di THP (abilitato/disabilitato). I valori per /sys/kernel/mm/redhat_transparent_hugepage/enabled possono essere uno dei seguenti:

always   -  always use THP
never    -  disable THP

Sotto l'output del comando conferma che i THP sono abilitati o disabilitati sul sistema.
Uscita quando THP è abilitato

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

Uscita quando THP è disattivato

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

1. Per disabilitare THP all'avvio

1. Aggiungi il parametro transparent_hugepage=never alla riga di comando del kernel 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. Aggiungi un piccolo script riportato di seguito al file /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. Riavvia il sistema per rendere effettive le modifiche.

# shutdown -r now

2. Per disabilitare THP in fase di esecuzione

Esegui i seguenti comandi per disabilitare THP senza riavviare il sistema.

# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
Nota :L'esecuzione dei comandi precedenti interromperà solo la creazione e l'utilizzo del nuovo THP. Il THP che è stato creato e utilizzato nel momento in cui sono stati eseguiti i comandi di cui sopra non sarebbe stato disassemblato nelle normali pagine di memoria. Per eliminare completamente THP, il sistema deve essere riavviato con THP disabilitato all'avvio.

Risoluzione dei problemi

Se Transparent Huge Pages (THP) non è ancora disabilitato, continua e utilizza una delle opzioni seguenti.

1. Disattiva i servizi Tuned/ktune

1. Disattiva i servizi sintonizzati se sta riabilitando il THP utilizzando uno dei comandi seguenti.

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

O

# tuned-adm off
Nota :il comando tuning-adm ripristinerà tutte le impostazioni a quelle che erano prima dell'avvio di tuning e disabiliterà l'esecuzione dei servizi di ottimizzazione all'avvio.

2. Verifica che ktune e i servizi sintonizzati siano disabilitati per l'avvio all'avvio:

# 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. Crea un profilo ottimizzato personalizzato con THP disabilitato

1. Creeremo una versione personalizzata del profilo attualmente in esecuzione. La versione personalizzata disabiliterà THP. Scopri quale profilo è attivo, creane una copia. Nell'esempio seguente utilizziamo attualmente il profilo di prestazioni di throughput:

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

2. Creare un profilo duplicato dal profilo esistente. Useremo il nuovo profilo per disabilitare il THP. Per fare ciò copia tutto il contenuto dalla directory del profilo corrente alla directory del profilo appena creata.

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

3. Disabiliteremo ora THP nel nuovo profilo e attiveremo il nuovo profilo. Modifica la riga mostrata di seguito:
Da :

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

A :

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

4. Attiva il nuovo profilo per rendere effettive le modifiche.

# tuned-adm profile nothp_profile
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always [never]
CentOS / RHEL 7:come disabilitare le pagine trasparenti enormi (THP)


Linux
  1. Come disabilitare IPv6 su CentOS / RHEL 7

  2. Come disabilitare NUMA in CentOS / RHEL 6,7

  3. Come disabilitare la modalità FIPS su CentOS/RHEL 7

  4. Come abilitare/disabilitare le modalità SELinux in RHEL/CentOS

  5. CentOS / RHEL 6:come disabilitare IPv6

Come disabilitare IPv6 su CentOS 7 / RHEL 7

Come disabilitare IPv6 su CentOS 8 / RHEL 8

Come disabilitare IPv6 in CentOS/RHEL 8

Come disabilitare ACPI in CentOS/RHEL 7

CentOS / RHEL 6:come disabilitare il servizio telnet

Come disabilitare NetworkManager in CentOS/RHEL 8