GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment activer/désactiver les processeurs (limitation du nombre de processeurs) dans CentOS/RHEL

Question

Quelle est la procédure pour désactiver/activer les processeurs (à la volée) sur les systèmes multiprocesseurs ? Comment restreindre le serveur au nombre "N" de CPU uniquement ?

Répondre

Il existe trois façons de restreindre le nombre de CPU dans CentOS/RHEL.

  • Utilisation du paramètre maxcpus (RHEL/CentOS 6)
  • Utilisation du paramètre nr_cpus (RHEL/CentOS 6,7)
  • Désactivation du processeur en ligne (RHEL/CentOS 6,7)

1. Utilisation du paramètre maxcpus

Cette méthode fonctionne avec les systèmes RHEL/CentOS 6. Il peut échouer si vous l'utilisez dans les systèmes RHEL/CentOS 7. Bien que dans la nouvelle version du système RHEL 7, ce bogue ait été corrigé.

Vous pouvez ajouter le paramètre de noyau maxcpus=N dans /boot/grub/grub.conf ou à la ligne du noyau au démarrage. Par exemple, pour limiter le serveur à n'utiliser que 2 processeurs, utilisez l'entrée ci-dessous dans le fichier

# 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
REMARQUE :Il n'est pas possible de désactiver CPU0 sur les systèmes Red Hat Enterprise Linux.

Lorsque maxcpus est utilisé, il prendra les processeurs de tous les processeurs physiques disponibles. Par exemple, sur un système avec deux processeurs double cœur, maxcpus=2 prendra un processeur de chaque processeur physique. Pour connaître les ID CPU physiques utilisés :

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

2. Utilisation du paramètre nr_cpus

a. Pour CentOS/RHEL 6
Ajouter le paramètre de noyau nr_cpus=N dans /boot/grub/grub.conf ou à la ligne du noyau au démarrage. Par exemple, l'entrée ci-dessous limitera le serveur à seulement 2 processeurs.

# 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. Pour CentOS/RHEL 7
1. Pour les systèmes RHEL 7, ajoutez le nr_cpus=N paramètre au "GRUB_CMDLINE_LINUX ” ligne dans “/etc/sysconfig/grub ” comme indiqué ci-dessous.

# 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. Utilisez le grub2-mkconfig commande pour régénérer le /boot/grub2/grub.cfg fichier.

# 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. Vérifiez l'entrée du paramètre nr_cpu dans le fichier de configuration 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. Désactivation du processeur en ligne

Désactiver les cœurs de processeur
1. Lors de l'exécution, il est possible de désactiver les cœurs de processeur avec les commandes suivantes. Par exemple, pour un système à 4 cœurs, nous pouvons désactiver 3 processeurs comme indiqué ci-dessous.

# 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. Pour vérifier si vous avez désactivé 3 cœurs et qu'il ne reste qu'un seul cœur activé, utilisez la commande ci-dessous.

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

Réactivation des cœurs de processeur
1. Les cœurs du processeur peuvent être réactivés à nouveau par la commande ci-dessous.

# 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. Vérifiez à nouveau pour 4 cœurs activés dans /proc/cpuinfo.

# grep "processor" /proc/cpuinfo
 processor       : 0
 processor       : 1
 processor       : 2
 processor       : 3
REMARQUE  :Ces paramètres ne sont pas persistants lors du redémarrage.


Cent OS
  1. Comment désactiver NetworkManager sur CentOS / RHEL 7

  2. CentOS / RHEL 6,7 :Comment activer ou désactiver le service XDMCP (GDM)

  3. Comment activer IPv6 sur CentOS / RHEL 7

  4. Comment désactiver IPv6 sur CentOS / RHEL 5

  5. Comment activer IPv6 dans CentOS / RHEL 5

Comment activer SELinux dans CentOS/RHEL 7

RHEL 8 / CentOS 8 activer/désactiver IPv6

Comment désactiver IPv6 sur CentOS 7 / RHEL 7

Comment désactiver IPv6 sur CentOS 8 / RHEL 8

CentOS / RHEL 7 :Comment activer ou désactiver les mises à jour automatiques (via packagekit)

Comment activer/désactiver les modes SELinux dans RHEL/CentOS