Imaginez une entreprise devant ajouter correctement une dimension à tous ses systèmes dès le départ. D'après mon expérience, c'est très difficile. Soit vous le sous-dimensionnerez, et vos clients se plaindront des performances à un moment donné, soit vous le surdimensionnerez, puis la machine restera là, au ralenti, ce qui n'est pas optimal non plus. C'est la raison pour laquelle les fournisseurs de matériel ont mis au point des ressources d'ajout et de suppression à chaud.
Cela permet à un système de mettre à niveau/rétrograder ses processeurs, sa mémoire et/ou ses disques sans avoir besoin d'un arrêt. Un KVM implémente une fonctionnalité similaire pour ses invités. Cet article décrit les étapes pour réduire ou limiter les processeurs dans un système CentOS/RHEL 5,6. Il existe 2 façons de réduire les CPU :
- En ligne/Temporaire (sans redémarrage)
- Persistant (nécessite un redémarrage)
En ligne/Temporaire (sans redémarrage)
1. Comptez le nombre de processeurs actuellement présents dans le système :
# grep "processor" /proc/cpuinfo processor : 0 processor : 1 processor : 2 processor : 3
Comme vous pouvez le voir, nous avons actuellement 4 processeurs présents sur le système.
2. Pour l'exemple de ce post, nous allons désactiver les 2 CPU (cpu3 et cpu2).
# echo 0 > /sys/devices/system/cpu/cpu3/online # echo 0 > /sys/devices/system/cpu/cpu2/online
3. Vérifiez à nouveau le nombre de CPU. Vous ne pouvez voir que 2 processeurs présents maintenant.
# grep "processor" /proc/cpuinfo processor : 0 processor : 1
4. Pour réactiver les 2 CPU, exécutez les commandes ci-dessous :
# echo 1 > /sys/devices/system/cpu/cpu3/online # echo 1 > /sys/devices/system/cpu/cpu2/onlineRemarque :Cette méthode est en ligne et les processeurs sont immédiatement désactivés. Mais la méthode ne persiste pas à travers les redémarrages.
Persistant (nécessite un redémarrage)
Pour les modifications permanentes, vous pouvez utiliser l'une des 2 méthodes mentionnées ci-dessous :
1. Utilisation du paramètre maxcpus
Ajouter le paramètre de noyau maxcpus=N dans /etc/grub.conf . Veuillez effectuer une sauvegarde de la configuration de grub avant d'effectuer les modifications.
# vi /etc/grub.conf linux16 /vmlinuz-3.8.13-55.1.6.el7uek.x86_64 root=/dev/mapper/ol-root ro crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet maxcpus=N initrd16 /initramfs-3.8.13-55.1.6.el7uek.x86_64.img
2. Utilisation du paramètre nr_cpus
Ajouter le paramètre de noyau nr_cpus=N dans /etc/grub2.cfg . Veuillez effectuer une sauvegarde de la configuration de grub avant d'effectuer les modifications.
linux16 /vmlinuz-3.8.13-55.1.6.el7uek.x86_64 root=/dev/mapper/ol-root ro crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet nr_cpus=N initrd16 /initramfs-3.8.13-55.1.6.el7uek.x86_64.imgRemarque :Il n'est pas possible de désactiver le CPU0Comment activer/désactiver les CPU (limitation du nombre de CPU) dans CentOS / RHEL