GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS / RHEL で CPU を有効/無効にする方法 (CPU 数の制限)

質問

マルチプロセッサを搭載したシステムでプロセッサを (オンザフライで) 無効/有効にする手順は何ですか?サーバーを「N」個の CPU のみに制限する方法は?

答え

CentOS/RHEL で CPU の数を制限するには、3 つの方法があります。

  • maxcpus パラメータの使用 (RHEL/CentOS 6)
  • nr_cpus パラメータの使用 (RHEL/CentOS 6、7)
  • CPU オンラインの無効化 (RHEL/CentOS 6、7)

1. maxcpus パラメータの使用

この方法は、RHEL/CentOS 6 システムで機能します。 RHEL/CentOS 7 システムで使用すると失敗する場合があります。ただし、RHEL 7 システムの新しいバージョンでは、このバグは修正されています。

カーネル パラメータ ma​​xcpus=N を追加できます /boot/grub/grub.conf 内 またはブート時のカーネル行に。たとえば、サーバーが 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 maxcpus=3
    initrd /initrd-2.6.18-238.el5.img
注意 :Red Hat Enterprise Linux システムで CPU0 を無効にすることはできません。

maxcpus を使用すると、使用可能なすべての物理 CPU から CPU が取得されます。たとえば、2 つのデュアル コア CPU を搭載したシステムでは、maxcpus=2 は各物理 CPU から 1 つの CPU を使用します。使用中の物理 CPU ID を知るには:

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

2. nr_cpus パラメータの使用

a. CentOS/RHEL 6 の場合
カーネル パラメータ nr_cpus=N を追加 /boot/grub/grub.conf 内 またはブート時のカーネル行に。たとえば、以下のエントリはサーバーを 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. CentOS/RHEL 7 の場合
1. RHEL 7 システムの場合、nr_cpus=N を追加します パラメータを「GRUB_CMDLINE_LINUX」に 「/etc/sysconfig/grub」の行

# 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. grub2-mkconfig を使用する /boot/grub2/grub.cfg を再生成するコマンド ファイル。

# 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. grub 構成ファイルの nr_cpu パラメータのエントリを確認します。

# 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. CPU オンラインの無効化

CPU コアの無効化
1.実行時に、次のコマンドで CPU コアを無効にすることができます。たとえば、4 コア システムの場合、以下に示すように 3 つの CPU を無効にすることができます。

# 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. 3 つのコアを無効にして、1 つのコアのみを有効にしたままにしているかどうかを確認するには、次のコマンドを使用します。

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

CPU コアの有効化
1.以下のコマンドで CPU コアを再び有効にできます。

# 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. /proc/cpuinfo で 4 コアが有効になっていることを再度確認します。

# grep "processor" /proc/cpuinfo
 processor       : 0
 processor       : 1
 processor       : 2
 processor       : 3
注意 :これらの設定は、再起動後は保持されません。


Cent OS
  1. CentOS / RHEL 7 :Firewalld を起動 / 停止または有効 / 無効にする方法

  2. CentOS / RHEL 7 で IPv6 を無効にする方法

  3. CentOS / RHEL 6,7 :XDMCP サービス (GDM) を有効または無効にする方法

  1. CentOS / RHEL 7 で IPv6 を有効にする方法

  2. CentOS / RHEL 5 で IPv6 を無効にする方法

  3. CentOS / RHEL 5 で IPv6 を有効にする方法

  1. CentOS/RHEL 5、6、7 で X11 転送を有効にする方法

  2. CentOS/RHEL で lvmetad を無効にする方法

  3. CentOS/RHEL 8 で IPv6 を有効にする方法