Icono del sitio Karok Seo Web

Limitar los recursos de CPU y memoria en Linux RedHat

Tabla de contenidos

Debido a una serie de pruebas de rendimiento que querían hacer desde el equipo de aplicaciones, me han preguntado si era posible limitar los recursos de CPU y memoria a nivel global del servidor, un Linux RedHat 7.

Podemos hacerlo con CGROUPS pero para este caso concreto he preferido limitar los recursos mediante parámetros del kernel configurados en grub. Veamos cómo lo he hecho:

En RedHat 7

Si nuestro sistema tiene BIOS

Creamos una máquina virtual con Linux Centos 7 con 1500MB de RAM y 4 CPUs virtuales

Para crear la maquina virtual he utilizado HyperV.

Limitamos el uso de memoria a 512MB y el número de CPUs a 2, editando el fichero /boot/grub2/grub.cfg

Como podemos comprobar, al final he añadido los parámetros mem=512M y nr_cpus=2

Una vez realizados los cambios, rebotamos el servidor y volvemos a comprobar cuánta memoria y cuántos procesadores vemos en el sistema:

Si nuestro sistema tiene UEFI

El procedimiento anterior me ha funcionado correctamente con sistemas con BIOS, sin embargo, tuve que hacer lo mismo en un RedHat 7.6 con UEFI y el procedimiento no es exactamente igual pero sí muy parecido (https://access.redhat.com/solutions/32726):

[[email protected] sysconfig]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-957.27.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.27.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-0ea1c55e2750436b9c64c7d00397ab7a
Found initrd image: /boot/initramfs-0-rescue-0ea1c55e2750436b9c64c7d00397ab7a.img
done
[[email protected] sysconfig]#

En RedHat 8

Para limitar los recursos de memoria y CPU en Linux RedHat 8, configuraremos el fichero /boot/grub2/grubenv:

[[email protected] ~]# cat /boot/grub2/grubenv
# GRUB Environment Block
saved_entry=062f875ce1af4e47828eb10505496dc0-4.18.0-240.10.1.el8_3.x86_64
kernelopts=root=/dev/mapper/vg00-rootvol ro audit=1 nomodeset crashkernel=auto resume=/dev/mapper/vg00-swapvol rd.lvm.lv=vg00/rootvol rd.lvm.lv=vg00/swapvol biosdevname=0 net.ifnames=0 rhgb quiet transparent_hugepage=never mem=15G
boot_success=0
boot_indeterminate=0

Luego, rebotaremos el servidor.

Te puede interesar

Salir de la versión móvil