Quiero deshabilitar transparent_hugepage (THP) en una instancia de CentOS 7 EC2, que está habilitada de manera predeterminada:
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
Esta configuración se puede cambiar manualmente:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
... pero los cambios se pierden después de reiniciar.
Traté de poner la echo never [...]
instrucción en mi rc.local
y cloud.cfg
archivos, pero no funcionó.
También intenté agregar la configuración transparent_hugepage=never
a la línea del kernel de /etc/grub.conf
(como se explica allí ), pero no funcionó mejor.
Entonces ... ¿cómo puedo desactivar THP en CentOS 7 que se ejecuta en una instancia de AWS EC2?
editar: título cambiado ... Necesito deshabilitar THP y THP defrag
amazon-ec2
centos7
grub
vcarel
fuente
fuente
Respuestas:
La solución está en sintonía , como lo señaló @ michael-hampton. La parte difícil es que el complemento vm solo puede configurar la
/sys/kernel/mm/transparent_hugepage/enabled
configuración.Para deshabilitar la
/sys/kernel/mm/transparent_hugepage/defrag
configuración también, tuve que crear una secuencia de comandos que el perfil llama al inicio.Al final, la solución completa es:
Paso 1 : crea el directorio para contener el perfil personalizado:
Paso 2 : crea el perfil
/etc/tuned/custom/tuned.conf
:Tenga en cuenta que este perfil hereda de virtual-guest , que era mi perfil activo, en realidad parece apropiado para el servidor virtualizado (EC2). Puede ver su perfil activo con el comando
tuned-adm active
. Si tiene curiosidad, puede consultar el contenido de los perfiles predefinidos en/usr/lib/tuned/
Paso 3 : crea el script
/etc/tuned/custom/script.sh
:Hazlo ejecutable:
Paso 4 : activa el nuevo perfil:
Ahora deberías obtener:
Persistirá después del reinicio.
fuente
Además de configurar la línea de comandos de grub, también necesita configurar sintonizado. Pero no utiliza las instrucciones a las que se vinculó, ya que están tan llenas de errores que tomaría medio día explicarlas todas.
Cree un perfil personalizado (que llamaré
custom
) y luego configure el perfil. Lo basará en un perfil existente, comovirtual-guest
si está ejecutando en una máquina virtual (EC2 es, por supuesto), othroughput-performance
si está en una máquina física.Cree el directorio para contener el perfil personalizado:
Cree el perfil personalizado
/etc/tuned/custom/tuned.conf
, por ejemplo:Ahora configure el perfil:
fuente
Prueba también esto
fuente
Puede editar el archivo /etc/rc.local y agregar el siguiente comando a ese archivo:
y ejecutar
chmod +x /etc/rc.d/rc.local
para garantizar que el script se ejecutará durante el arranque. probado en Amazon Linux 2.fuente
EDITAR: la respuesta anterior es incorrecta , porque en este momento faltan los botones de página enormes transparentes de sysctl. Perdón por el ruido.
Puede poner los valores deseados en
/etc/sysctl.conf
.Desde la página del comando man sysctl.conf (5):
fuente