Diferencia entre revisiones de «THP Service»
(Página creada con «== Rol Ansible: THP Service == === Descripción === El rol '''THP Service''' se utiliza para gestionar el estado de '''Transparent Huge Pages (THP)''' en sistemas Linux mediante un único servicio <code>systemd</code> de tipo <code>oneshot</code>. El objetivo principal del rol es permitir '''habilitar o deshabilitar THP de forma persistente''' utilizando una sola variable de Ansible, sin depender de scripts ad-hoc ni configuraciones manuales en cada arranque del sis…») |
|||
| Línea 11: | Línea 11: | ||
Repositorio del rol: | Repositorio del rol: | ||
* https://github.com/Escleiron/Ansible/tree/main/THP_Service | * https://github.com/Escleiron/Ansible/tree/main/THP_Service | ||
== ¿Qué son Transparent Huge Pages (THP)? == | == ¿Qué son Transparent Huge Pages (THP)? == | ||
Revisión del 17:43 2 ene 2026
Rol Ansible: THP Service
Descripción
El rol THP Service se utiliza para gestionar el estado de Transparent Huge Pages (THP)
en sistemas Linux mediante un único servicio systemd de tipo oneshot.
El objetivo principal del rol es permitir habilitar o deshabilitar THP de forma persistente utilizando una sola variable de Ansible, sin depender de scripts ad-hoc ni configuraciones manuales en cada arranque del sistema.
Repositorio del rol:
¿Qué son Transparent Huge Pages (THP)?
Transparent Huge Pages es una funcionalidad del kernel Linux que intenta mejorar el rendimiento utilizando páginas de memoria de mayor tamaño de forma automática.
Aunque puede ser beneficioso en algunos escenarios, en otros (bases de datos, aplicaciones Java, entornos de baja latencia, clústeres, etc.) puede provocar:
- Latencias impredecibles
- Penalización de rendimiento
- Problemas de estabilidad
Por este motivo, en muchos entornos empresariales se requiere deshabilitar THP de forma persistente.
---
¿Qué hace este rol?
Este rol realiza las siguientes acciones:
- Crea un servicio
systemdllamadothp-configuration.service - El servicio se ejecuta una sola vez (
oneshot) - Escribe los valores adecuados en:
/sys/kernel/mm/transparent_hugepage/enabled/sys/kernel/mm/transparent_hugepage/defrag
- Garantiza que la configuración se aplique:
- En tiempo de ejecución
- En cada arranque del sistema
- Permite cambiar el estado de THP modificando una única variable
---
Ventajas del enfoque
Este diseño aporta varias ventajas frente a métodos tradicionales:
- No depende de scripts en
/etc/rc.local - No requiere tareas periódicas (cron)
- Es compatible con
systemd - Es idempotente
- Fácil de auditar
- Fácil de revertir
---
Sistemas compatibles
- RHEL 8
- RHEL 9
Requisitos:
- Acceso como
root(uso debecome: true) - Kernel Linux con soporte para THP
- Existencia de
/sys/kernel/mm/transparent_hugepage
---
Variables del rol
thp_state
Define el estado deseado de THP.
Valores posibles:
enableddisabled
Valor por defecto:
enabled
---
thp_map
Mapa interno que traduce el estado lógico (enabled / disabled)
a los valores reales que se escriben en el sistema de ficheros /sys.
Valores por defecto:
thp_map:
enabled:
enabled: "always"
defrag: "always"
disabled:
enabled: "never"
defrag: "never"
Este diseño permite extender el rol fácilmente en el futuro.
---
thp_verify
Indica si, tras aplicar la configuración, se debe mostrar el estado actual de THP.
Valor por defecto:
true
---
Ejemplo de uso
Playbook de ejemplo utilizando el rol:
- hosts: all
become: true
roles:
- role: transparent_huge_pages_service
vars:
# Descomentar solo una opción
# thp_state: enabled
# thp_state: disabled
---
Cuándo usar este rol
Este rol es especialmente útil en los siguientes escenarios:
- Servidores de bases de datos
- Clústeres (Pacemaker, Kubernetes, etc.)
- Sistemas con aplicaciones sensibles a latencia
- Estandarización de configuraciones en grandes entornos
- Hardening y buenas prácticas de rendimiento
---
Conceptos que demuestra este rol
- Uso de
systemd oneshot services - Persistencia de configuraciones del kernel
- Abstracción mediante variables
- Idempotencia en Ansible
- Buen diseño de roles reutilizables
---
Nota final
Este rol no pretende decidir si THP debe estar habilitado o no, sino proporcionar un mecanismo limpio, controlado y reutilizable para gestionar su estado de forma coherente en toda la infraestructura.