Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.2. Páginas gigantes y páginas gigantes transparentes

La memoria es administrada en bloques conocidos como páginas. Una página es de 4096 bytes. 1MB de memoria es igual a 256 páginas; 1GB de memoria es igual a 256.000 páginas, etc. Las CPU tienen una unidad de administración de memoria incorporada que contiene una lista de dichas páginas y cada página se referencia a través de una entrada de tabla de páginas.
Hay dos formas de habilitar el sistema para que administre grandes cantidades de memoria:
  • Aumentar el número de entradas de tabla de páginas en la unidad de administración de memoria
  • Aumentar el tamaño de página
El primer método es costoso, puesto que la unidad de administración de hardware en un procesador moderno únicamente soporta cientos o miles de entradas de tabla de página. Además, la administración de algoritmos de hardware y memoria que funcionan bien con miles de páginas (MB de memoria) puede tener dificultad al funcionar con millones (o incluso miles de millones) de páginas. Esto se traduce en problemas de rendimiento: cuando una aplicación necesita usar más páginas de memoria que las que soporta la unidad de administración de memoria, el sistema se conmuta a una administración de memoria basada en software más lento, lo cual hace que todo el sistema se ejecute más lentamente.
Red Hat Enterprise Linux 6 implementa el segundo método a través de las páginas gigantes.
Las páginas gigantes (o Hugepages) son bloques de memoria que vienen en tamaños de 2MB y 1GB. Las tablas de páginas utilizadas por las páginas de 2MB son apropiadas para administrar múltiples GB de memoria y las tablas de páginas de 1GB son las mejores para escalar a TB de memoria.
Las páginas gigantes deben asignarse en el momento de arranque. También son difíciles de administrar y suelen requerir cambios significativos al código para utilizar de forma efectiva. Como tal, Red Hat Enterprise Linux 6 también implementó el uso de la página gigante transparente (THP). THP es una capa de abstracción que automatiza la mayoría de los aspectos de creación, manejo y uso de páginas gigantes.
THP oculta parte de su complejidad del uso de páginas gigantes a los administradores y desarrolladores del sistema. Puesto que la meta de THP es mejorar el rendimiento, sus desarrolladores (tanto de la comunidad como de Red Hat) han probado y optimizado THP a través de un amplio rango de sistemas, configuraciones, aplicaciones y cargas de trabajo. Esto ha permitido a los parámetros de THP mejorar el rendimiento de la mayoría de configuraciones del sistema.
Observe que la THP puede únicamente asignar regiones de memoria anónima como espacio de montículo y de pila.