GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come abilitare/disabilitare le CPU (limitazione del conteggio della CPU) in CentOS/RHEL

Domanda

Qual è la procedura per disabilitare/abilitare i processori (al volo) su sistemi con multiprocessori? Come limitare il server a un numero "N" di sole CPU?

Risposta

Esistono tre modi per limitare il numero di CPU in CentOS/RHEL.

  • Utilizzo del parametro maxcpus (RHEL/CentOS 6)
  • Utilizzo del parametro nr_cpus (RHEL/CentOS 6,7)
  • Disabilitazione della CPU in linea (RHEL/CentOS 6,7)

1. Utilizzo del parametro maxcpus

Questo metodo funziona con i sistemi RHEL/CentOS 6. Potrebbe non riuscire se lo utilizzi nei sistemi RHEL/CentOS 7. Sebbene nella versione più recente del sistema RHEL 7 questo bug sia stato corretto.

Puoi aggiungere il parametro del kernel maxcpus=N in /boot/grub/grub.conf o alla riga del kernel al momento dell'avvio. Ad esempio, per limitare il server a utilizzare solo 2 CPU, utilizzare la voce seguente nel file

# 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 :Non è possibile disabilitare CPU0 sui sistemi Red Hat Enterprise Linux.

Quando viene utilizzato maxcpus, prenderà le CPU da tutte le CPU fisiche disponibili. Ad esempio su un sistema con due CPU dual core, maxcpus=2 prenderà una CPU da ciascuna CPU fisica. Per conoscere gli ID fisici della CPU in uso:

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

2. Utilizzo del parametro nr_cpus

a. Per CentOS/RHEL 6
Aggiungi parametro kernel nr_cpus=N in /boot/grub/grub.conf o alla riga del kernel al momento dell'avvio. Ad esempio, la voce Sotto restringerà il server a sole 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. Per CentOS/RHEL 7
1. Per i sistemi RHEL 7 aggiungere nr_cpus=N parametro a "GRUB_CMDLINE_LINUX ” in “/etc/sysconfig/grub ” come mostrato di seguito.

# 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 grub2-mkconfig comando per rigenerare il /boot/grub2/grub.cfg file.

# 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. Verificare l'immissione del parametro nr_cpu nel file di configurazione di 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. Disabilitazione della CPU in linea

Disattivazione dei core della CPU
1. A runtime è possibile disabilitare i core della cpu con i seguenti comandi. Ad esempio per un sistema a 4 core, possiamo disabilitare 3 CPU come mostrato di seguito.

# 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. Per verificare se hai disabilitato 3 core e ne hai lasciato solo 1 abilitato, usa il comando seguente.

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

Riabilitazione dei core della CPU
1. I core della CPU possono essere riattivati ​​nuovamente con il comando seguente.

# 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. Verifica di nuovo per 4 core abilitati core in /proc/cpuinfo.

# grep "processor" /proc/cpuinfo
 processor       : 0
 processor       : 1
 processor       : 2
 processor       : 3
NOTA :queste impostazioni non sono persistenti durante il riavvio.


Cent OS
  1. Come disabilitare NetworkManager su CentOS / RHEL 7

  2. CentOS / RHEL 6,7:Come abilitare o disabilitare il servizio XDMCP (GDM)

  3. Come abilitare IPv6 su CentOS/RHEL 7

  4. Come disabilitare IPv6 su CentOS / RHEL 5

  5. Come abilitare IPv6 in CentOS/RHEL 5

Come abilitare SELinux in CentOS/RHEL 7

RHEL 8 / CentOS 8 abilita/disabilita IPv6

Come disabilitare IPv6 su CentOS 7 / RHEL 7

Come disabilitare IPv6 su CentOS 8 / RHEL 8

CentOS / RHEL 7:come abilitare o disabilitare gli aggiornamenti automatici (tramite packagekit)

Come abilitare/disabilitare le modalità SELinux in RHEL/CentOS