GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo habilitar/deshabilitar CPU (limitación del número de CPU) en CentOS/RHEL

Pregunta

¿Cuál es el procedimiento para deshabilitar/habilitar procesadores (sobre la marcha) en sistemas con multiprocesadores? ¿Cómo restringir el servidor a un número "N" de CPU solamente?

Respuesta

Hay tres formas de restringir el número de CPU en CentOS/RHEL.

  • Uso del parámetro maxcpus (RHEL/CentOS 6)
  • Utilizando el parámetro nr_cpus (RHEL/CentOS 6,7)
  • Deshabilitar CPU en línea (RHEL/CentOS 6,7)

1. Usando el parámetro maxcpus

Este método funciona con sistemas RHEL/CentOS 6. Puede fallar si lo usa en sistemas RHEL/CentOS 7. Aunque en la versión más nueva del sistema RHEL 7, este error se ha solucionado.

Puede agregar el parámetro del kernel maxcpus=N en /boot/grub/grub.conf o a la línea del kernel en el momento del arranque. Por ejemplo, para limitar el uso del servidor a solo 2 CPU, use la siguiente entrada en el archivo

# vi /boot/grub/grub.conf
...
title Red Hat Enterprise Linux Server (2.6.18-238.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet maxcpus=3
    initrd /initrd-2.6.18-238.el5.img
NOTA :No es posible deshabilitar CPU0 en sistemas Red Hat Enterprise Linux.

Cuando se usa maxcpus, tomará las CPU de todas las CPU físicas disponibles. Por ejemplo, en un sistema con dos CPU de doble núcleo, maxcpus=2 tomará una CPU de cada CPU física. Para conocer las ID de CPU físicas en uso:

# cat /sys/devices/system/cpu/cpu*/topology/physical_package_id

2. Usando el parámetro nr_cpus

a. Para CentOS/RHEL 6
Agregar parámetro de kernel nr_cpus=N en /boot/grub/grub.conf o a la línea del kernel en el momento del arranque. Por ejemplo, la siguiente entrada restringirá el servidor a solo 2 CPU.

# vi /boot/grub/grub.conf
title Red Hat Enterprise Linux Server (2.6.18-238.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet nr_cpus=2
    initrd /initrd-2.6.18-238.el5.img

b. Para CentOS/RHEL 7 1. Para sistemas RHEL 7, agregue nr_cpus=N parámetro al "GRUB_CMDLINE_LINUX ” línea en “/etc/sysconfig/grub ” como se muestra a continuación.

# cat /etc/default/grub 
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="console=ttyS0,115200 console=tty0 vconsole.font=latarcyrheb-sun16 crashkernel=auto nr_cpus=2"
GRUB_DISABLE_RECOVERY="true"

2. Usa el grub2-mkconfig comando para regenerar el /boot/grub2/grub.cfg archivo.

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.21.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.21.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.17.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.17.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.11.6.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.11.6.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.11.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.11.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.5.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.5.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-f9afeb75a5a382dce8269887a67fbf58
Found initrd image: /boot/initramfs-0-rescue-f9afeb75a5a382dce8269887a67fbf58.img
done

3. Verifique la entrada del parámetro nr_cpu en el archivo de configuración de grub.

# grep linux16 /boot/grub2/grub.cfg
	linux16 /boot/vmlinuz-3.10.0-693.21.1.el7.x86_64 root=UUID=0f790447-ebef-4ca0-b229-d0aa1985d57f ro console=ttyS0,115200 console=tty0 vconsole.font=latarcyrheb-sun16 crashkernel=auto nr_cpus=2 
...

3. Deshabilitar CPU en línea

Deshabilitar núcleos de CPU 1. En tiempo de ejecución, es posible deshabilitar los núcleos de la CPU con los siguientes comandos. Por ejemplo, para un sistema de 4 núcleos, podemos deshabilitar 3 CPU como se muestra a continuación.

# echo 0 > /sys/devices/system/cpu/cpu3/online
# echo 0 > /sys/devices/system/cpu/cpu2/online
# echo 0 > /sys/devices/system/cpu/cpu1/online

2. Para verificar si deshabilitó 3 núcleos y se quedó con solo 1 núcleo habilitado, use el siguiente comando.

# grep "processor" /proc/cpuinfo
processor	: 0

Habilitar núcleos de CPU de nuevo 1. Los núcleos de la CPU se pueden reactivar nuevamente con el siguiente comando.

# echo 1 > /sys/devices/system/cpu/cpu3/online
# echo 1 > /sys/devices/system/cpu/cpu2/online
# echo 1 > /sys/devices/system/cpu/cpu1/online

2. Vuelva a verificar si hay 4 núcleos habilitados en /proc/cpuinfo.

# grep "processor" /proc/cpuinfo
 processor       : 0
 processor       : 1
 processor       : 2
 processor       : 3
NOTA :estas configuraciones no son persistentes al reiniciar.


Cent OS
  1. CentOS/RHEL 7:Cómo iniciar/detener o habilitar/deshabilitar Firewalld

  2. Cómo deshabilitar IPv6 en CentOS / RHEL 7

  3. Cómo deshabilitar NUMA en CentOS / RHEL 6,7

  4. Cómo habilitar IPv6 en CentOS / RHEL 6

  5. CentOS / RHEL 7:Cómo habilitar o deshabilitar las actualizaciones automáticas (a través de packagekit)

Cómo habilitar SELinux en CentOS/RHEL 7

RHEL 8/CentOS 8 activar/desactivar IPv6

Cómo deshabilitar IPv6 en CentOS 7 / RHEL 7

Cómo deshabilitar IPv6 en CentOS 8 / RHEL 8

Cómo habilitar IPv6 en CentOS/RHEL 8

Cómo deshabilitar IPv6 en CentOS/RHEL 8