GNU/Linux >> Znalost Linux >  >> Cent OS

Jak povolit/zakázat CPU (omezení počtu CPU) v CentOS / RHEL

Otázka

Jaký je postup pro zakázání/povolení procesorů (za běhu) na systémech s více procesory? Jak omezit server pouze na „N“ počet CPU?

Odpověď

Existují tři způsoby, jak omezit počet CPU v CentOS/RHEL.

  • Použití parametru maxcpus (RHEL/CentOS 6)
  • Použití parametru nr_cpus (RHEL/CentOS 6,7)
  • Zakázání CPU online (RHEL/CentOS 6,7)

1. Pomocí parametru maxcpus

Tato metoda funguje se systémy RHEL/CentOS 6. Pokud jej používáte v systémech RHEL/CentOS 7, může selhat. Ačkoli v novější verzi systému RHEL 7 byla tato chyba opravena.

Můžete přidat parametr jádra maxcpus=N v /boot/grub/grub.conf nebo na řádek jádra při bootování. Chcete-li například omezit server na použití pouze 2 CPU, použijte níže uvedený záznam v souboru

# 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
POZNÁMKA :Na systémech Red Hat Enterprise Linux není možné deaktivovat CPU0.

Když je použit maxcpus, vezme CPU ze všech dostupných fyzických CPU. Například v systému se dvěma dvoujádrovými CPU bude maxcpus=2 odebírat jeden CPU z každého fyzického CPU. Chcete-li zjistit používaná fyzická ID CPU:

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

2. Pomocí parametru nr_cpus

a. Pro CentOS/RHEL 6
Přidejte parametr jádra nr_cpus=N v /boot/grub/grub.conf nebo na řádek jádra při bootování. Například položka Níže omezí server pouze na 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. Pro CentOS/RHEL 7
1. Pro systémy RHEL 7 přidejte nr_cpus=N parametr na „GRUB_CMDLINE_LINUX “ v „/etc/sysconfig/grub “, jak je uvedeno níže.

# 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. Použijte grub2-mkconfig příkaz k přegenerování souboru /boot/grub2/grub.cfg soubor.

# 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. Ověřte zadání parametru nr_cpu v konfiguračním souboru 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. Zakázání CPU online

Zakázání jader CPU
1. Za běhu je možné deaktivovat jádra cpu pomocí následujících příkazů. Například u 4jádrového systému můžeme zakázat 3 CPU, jak je ukázáno níže.

# 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. Chcete-li ověřit, zda jste zakázali 3 jádra a zůstalo pouze 1 povolené jádro, použijte níže uvedený příkaz.

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

Zpětné povolení jader CPU
1. Jádra procesoru lze znovu aktivovat níže uvedeným příkazem.

# 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. Znovu ověřte, zda v /proc/cpuinfo nejsou povolena 4 jádra.

# grep "processor" /proc/cpuinfo
 processor       : 0
 processor       : 1
 processor       : 2
 processor       : 3
POZNÁMKA :Tato nastavení nejsou trvalá po restartování.


Cent OS
  1. Jak deaktivovat NetworkManager na CentOS / RHEL 7

  2. CentOS / RHEL 6,7 :Jak povolit nebo zakázat službu XDMCP (GDM)

  3. Jak povolit IPv6 na CentOS / RHEL 7

  1. Jak zakázat IPv6 na CentOS / RHEL 5

  2. Jak povolit IPv6 v CentOS / RHEL 5

  3. Jak povolit X11 Forwarding na CentOS/RHEL 5,6,7

  1. CentOS / RHEL 7 :Jak povolit nebo zakázat automatické aktualizace (prostřednictvím sady balíčků)

  2. Jak zakázat lvmetad v CentOS/RHEL

  3. Jak povolit IPv6 v CentOS/RHEL 8