GNU/Linux >> Tutoriales Linux >  >> Linux

CentOS / RHEL 6:Cómo deshabilitar las páginas gigantes transparentes (THP)

Las páginas gigantes transparentes (THP) están habilitadas de forma predeterminada en RHEL 6 para todas las aplicaciones. El núcleo siempre intentará satisfacer una asignación de memoria utilizando páginas gigantes. Si no hay páginas enormes disponibles (debido a la falta de disponibilidad de memoria físicamente continua, por ejemplo), el núcleo volverá a las páginas normales de 4 KB.

Páginas enormes explícitas frente a páginas enormes transparentes

Puede haber dos tipos de páginas enormes en el sistema:páginas enormes explícitas que se asignan explícitamente mediante el parámetro sysctl vm.nr_hugepages y Transparent Huge Pages que son asignados automáticamente por el kernel.

Verificar si THP está habilitado

“tuned.service” en CentOS/RHEL 7 establece la página transparente_huge en siempre de forma predeterminada. Incluso si está deshabilitado en la línea de comando del kernel de grub, el servicio ajustado lo establecerá en 'siempre ' durante el arranque. El archivo /sys/kernel/mm/redhat_transparent_hugepage/enabled da el estado actual de THP (habilitado/deshabilitado). Los valores para /sys/kernel/mm/redhat_transparent_hugepage/enabled pueden ser uno de los siguientes:

always   -  always use THP
never    -  disable THP

A continuación, la salida del comando confirma que los THP están habilitados o deshabilitados en el sistema.
Salida cuando THP está habilitado

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

Salida cuando THP está deshabilitado

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

1. Para deshabilitar THP en el momento del arranque

1. Agregue el parámetro transparent_hugepage=never a la línea de comandos del kernel en /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. Agregue un pequeño script que se proporciona a continuación al archivo /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. Reinicie el sistema para que los cambios surtan efecto.

# shutdown -r now

2. Para deshabilitar THP en tiempo de ejecución

Ejecute los siguientes comandos para deshabilitar THP sin reiniciar el sistema.

# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
Nota :La ejecución de los comandos anteriores solo detendrá la creación y el uso del nuevo THP. El THP que se creó y usó en el momento en que se ejecutaron los comandos anteriores no se desarmaría en las páginas de memoria regulares. Para deshacerse de THP por completo, el sistema debe reiniciarse con THP deshabilitado en el momento del arranque.

Resolución de problemas

Si Transparent Huge Pages (THP) aún no está deshabilitado, continúe y use una de las opciones a continuación.

1. Deshabilitar los servicios tuned/ktune

1. Deshabilite los servicios sintonizados si está volviendo a habilitar el THP usando cualquiera de los siguientes comandos.

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

O

# tuned-adm off
Nota :El comando tuned-adm revertirá todas sus configuraciones a lo que eran antes de que se iniciara la sintonización y deshabilitará la ejecución de los servicios de sintonización en el arranque.

2. Verifique que los servicios ktune y tuned estén deshabilitados para comenzar en el arranque:

# 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. Cree un perfil sintonizado personalizado con THP deshabilitado

1. Crearemos una versión personalizada del perfil que se está ejecutando actualmente. La versión personalizada deshabilitará THP. Averigüe qué perfil está activo, cree una copia. En el siguiente ejemplo, actualmente usamos el perfil rendimiento-rendimiento:

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

2. Cree un perfil duplicado a partir del perfil existente. Usaremos el nuevo perfil para deshabilitar el THP. Para hacer esto, copie todo el contenido del directorio de perfil actual al directorio de perfil recién creado.

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

3. Ahora deshabilitaremos THP en el nuevo perfil y activaremos el nuevo perfil. Cambie la línea que se muestra a continuación:
Desde :

# 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. Active el nuevo perfil para que los cambios surtan efecto.

# tuned-adm profile nothp_profile
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always [never]
CentOS / RHEL 7:Cómo deshabilitar las páginas gigantes transparentes (THP)


Linux
  1. Cómo deshabilitar NetworkManager en CentOS / RHEL 7

  2. CentOS / RHEL 7:Cómo deshabilitar las páginas gigantes transparentes (THP)

  3. CentOS / RHEL 6,7:Cómo configurar páginas gigantes

  4. Cómo deshabilitar IPv6 en CentOS / RHEL 5

  5. Cómo deshabilitar lvmetad en CentOS/RHEL

Cómo deshabilitar IPv6 en CentOS 7 / RHEL 7

Cómo deshabilitar IPv6 en CentOS 8 / RHEL 8

Cómo deshabilitar NUMA en CentOS / RHEL 6,7

Cómo deshabilitar el modo FIPS en CentOS/RHEL 7

CentOS / RHEL 6:Cómo deshabilitar el servicio telnet

Cómo deshabilitar NetworkManager en CentOS/RHEL 8