Configurar «huge pages» en RedHat 7 para Oracle

Funcionamiento básico de la memoria física y la swap

Todos los procesos que se están ejecutando en el sistema operativo leen datos de la memoria física (RAM). Estos datos se almacenan en «páginas de memoria» que deben existir en la RAM antes de poderse ejecutar. Si no lo están porque estas páginas se hayan movido a la memoria swap ubicada en el disco por falta de RAM disponible, el sistema operativo las tendrá que mover desde la swap a la RAM para que el proceso pueda encontrar los datos que necesita para su correcta ejecución, penalizando su rendimiento.

A la entrada y salida de páginas de memoria entre la swap y la memoria física se denomina actividad de «page in» y «page out» y es un métrica del sistema operativo que se puede capturar, bien en número de páginas, bien tamaño de datos (MB) para saber si tenemos problemas de rendimiento porque se están moviendo demasiadas páginas de memoria. Sería un indicativo de que necesitaríamos instalar más memoria física en el servidor y estaríamos observando un gran porcentaje de uso de la memoria swap.

Configuración de huge pages para Oracle

Normalmente, en un servidor de se ha instalado una base de datos Oracle, no se instala ningún otro producto. Es decir, suelen ser servidores dedicados.

Para no penalizar el rendimiento de la base de datos, Oracle recomienda bloquear un cierto número de páginas que ha de ser calculado previamente, para que el sistema no las swapee.

Para calcular este número, Oracle pone a disposición el script hugepages.sh que nos da el valor del parámetro del kernel que tenemos que configurar. Veamos un ejemplo:

[[email protected] ~]# ./hugepages_settings.sh
Recommended setting: vm.nr_hugepages = 1284
[[email protected] ~]#

Por lo tanto, en los parámetros del kernel, tendríamos que configurar este valor. En RedHat se haría de la siguiente manera:

[[email protected] ~]# grep huge /etc/sysctl.conf
vm.nr_hugepages=1284
[[email protected] ~]# sysctl -p |grep huge
vm.nr_hugepages = 1284
[[email protected] ~]#

Si queremos comprobar que, en este caso, estamos bloqueando 1284 páginas de memoria de ser swapeadas, ejecutaremos el siguiente comando:

[[email protected] ~]# grep HugePages /proc/meminfo
AnonHugePages:         0 kB
HugePages_Total:    1284
HugePages_Free:        4
HugePages_Rsvd:        1
HugePages_Surp:        0
[[email protected] ~]#

Deberemos tener en cuenta de que si modificamos la memoria física del servidor, instalamos una nueva base de datos, reconfiguramos las SGA de Oracle, etc. deberemos volver a calcular este parámetro.

Desactivar transparent hugepages

Otra de las recomendaciones de Oracle es la desactivación de «transparent hugepages». Es una opción que requiere reboot del sistema y que mejorará el rendimiento a la hora de leer y escribir páginas de memoria.

A nivel de sistema operativo, el valor por defecto del tamaño de una página de memoria es de 4KB:

[[email protected] ~]# getconf PAGESIZE
4096
[[email protected] ~]#

Pero una aplicación como una base de datos Oracle, escribe muchos más datos en memoria, por lo que conviene reducir el número escrituras y lecturas para mejorar el rendimiento. Por lo tanto, lo que hay que hacer es que el tamaño de las páginas de memoria sea mayor y, para ello, Oracle recomienda usar HugePages. Lo haremos modificando la línea de parámetros del kernel, añadiendo transparent_hugepage=never. Veamos un ejemplo:

[[email protected] ~]# grep -i huge /boot/grub2/grub.cfg
        linux16 /vmlinuz-3.10.0-693.21.1.el7.x86_64 root=/dev/mapper/vg00-rootvol ro audit=1 vmwgfx.enable_fbdev=0 crashkernel=auto rd.lvm.lv=vg00/rootvol rd.lvm.lv=vg00/swapvol biosdevname=0 net.ifnames=0 rhgb quiet transparent_hugepage=never
[[email protected] ~]#

El tamaño por defecto de las paginas «HugePages» es de 2MB, pero podemos modificarlo durante el arranque del sistema, añadiendo la linea hugepagesz=Tamaño en la línea de parámetros del kernel, pudiendo utilizar los sufijos K, M, y G para especificar KB, MB y GB .

Configuración de un servicio de RedHat 7 para deshabilitar las Huge Pages

  • Creamos el servicio
[[email protected] ~]# cat /etc/systemd/system/disable-transparent-huge-pages.service
[Unit]
Description=Disable Transparent Huge Pages (THP)
DefaultDependencies=no
After=sysinit.target local-fs.target
Before=mongod.service

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/enabled | tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null'

[Install]
WantedBy=basic.target
[[email protected] ~]#
  • Recargamos la configuración de los servicios del sistema:
[[email protected] ~]# systemctl daemon-reload
  • Arrancamos el servicio
[[email protected] ~]# systemctl start disable-transparent-huge-pages
  • Comprobamos que se ha aplicado correctamente la configuración:
[[email protected] ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[[email protected] ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
[[email protected] ~]#

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Tutorial de ElasticSearch

Tabla de contenidos1 ¿Qué es ElasticSearch?2 Instalación de ElasticSearch2.1 Instalación de Java2.2 Instalación de ElasticSearch en Linux CentOS 72.2.1 Configuración

Leer más »

Este es un blog de informática. ¿Qué necesita un informático?

Portátiles

Rebajas
Lenovo S145-15IIL - Ordenador portátil 15.6" FullHD (Intel Core i5-1035G1, 8GB RAM, 512GB...
  • Pantalla de 15.6" FullHD 1920x1080 pixeles 220nits Anti-glare
  • Procesador Intel Core I5-1035G1, QuadCore, 1.0-3.6GHz
  • Memoria RAM de 4GB Soldered + 4GB DIMM DDR4-2666
Lenovo S145-15AST - Ordenador portátil 15.6" FullHD (AMD A9-9425, 8GB de RAM, 512GB SSD,...
  • Pantalla de 15,6"fullhd 1920x1080 pixeles
  • Procesador amd a9-9425, dualcore 3.1ghz hasta 3.7ghz, 1m
  • Memoria ram de 8gddr4, 2133mhz
Rebajas
HP 15s-eq0004ns - Ordenador portátil de 15.6" HD (AMD Ryzen 3 3200U, 8 GB RAM, 256 GB,...
  • Procesador AMD Ryzen 3 3200U (2 núcleos, 5 MB de Caché, 2.6 GHz hasta 3.5 GHz)
  • Memoria RAM de 8 GB DDR4, 2400 MT/s
  • Disco SSD de 256 GB PCIe NVMe M.2
Rebajas
Lenovo S145-15AST- Ordenador portátil 15.6" FullHD (AMD A9-9425, 8GB RAM, 256GB SSD, AMD...
  • Pantalla de 15.6" FullHD 1920x1080 pixeles 220nits Anti-glare
  • Procesador AMD A9-9425, DualCore, 3.1GHz-3.7GHz
  • Memoria RAM de 8GB DIMM DDR4, 2133Mhz

Monitores PC

HP 22w - Monitor 21.5" (Full HD, 1920 x 1080 pixeles, tiempo de respuesta de 5 ms, 1 x...
  • Regálale a tu escritorio un toque de elegancia
  • Esta pantalla IPS de 53.61 cm (21,5 pulgadas) en diagonal dispone de 178 ángulos de visualización para ofrecer una experiencia de entretenimiento...
  • Con los puertos VGA y HDMI, esta pantalla hace que conectar tu ordenador portátil o pc de sobremesa sea una tarea sencilla y fluida
Rebajas
Samsung LC24F390FHU - Monitor para PC Desktop de 24'' (1920 x 1080 pixeles, Full HD, HD...
  • Pantalla de 24 pulgadas con una resolución de 1920 x 1080 píxeles
  • Brillo de pantalla: 250 cd / m²
  • Interfaz de montaje VESA 75 x 75 mm
Rebajas
BenQ GW2470HL - Monitor para PC Desktop de 23.8" Full HD (1920x1080, VA, 16:9, 2x HDMI,...
  • Los niveles ajustables de baja luz azul eliminan la luz azul peligrosa y mantienen la luz beneficiosa para una comodidad de visualización prolongada
  • Disfruta de gráficos nítidos con una resolución de 1920 x 1080
  • Minimiza las distracciones y crea una configuración de varios paneles con monitores de bisel estrecho

NAS

Rebajas
Western Digital My Cloud Home - Almacenamiento En Red NAS de 3 TB, 1 Bahía, Blanco y...
  • Configuración sencilla y rápida desde el teléfono
  • Acceso desde cualquier lugar con la aplicación para móviles o para ordenadores de My Cloud Home, o bien desde MyCloud.com
  • Copia de seguridad automática de las fotos y los vídeos del teléfono
Synology Diskstation DS218+ - Memoría externa DS218+ NAS 2bay
  • Procesador de doble núcleo con aceleración de cifrado AES-NI
  • No lleva disco
  • Admite la transcodificación 4K en tiempo real
Synology DS218J Diskstation
  • A versatile entry-level 2-bay NAS for home and personal cloud storage
  • Over 113 MB/s reading, 112 MB/s writing
  • Dual-core CPU with hardware encryption engine
Synology diskstation ds120j.
  • Almacenamiento de 1 bahía fácil de usar en una nube personal para usuarios de nas inexpertos
  • Rendimiento secuencial más de 112 mb/s de lectura, 106 mb/s de escritura
  • Plataforma para compartir archivos y sincronización entre dispositivos

Deja un comentario

About Author