雑木林

頭の中の整理と忘れないための確認メモ

CentOS7で利用するCPUの上限を設定する

CentOS7に閉じた話ではないと思いますが、やろうと思ってできなかったのでメモしておきます。

kernelのコマンドラインオプションを追加することは変わってませんが、
「 maxcpus 」ではなく、「 nr_cpus 」で指定しないといけないみたいです。
(あとメモリを制限する場合は「 mem 」で制限できます。)

ちなみにCentOS6まではGrubだったので、/boot/grub/grub.conf を直接編集しましたが、
CentOS7からGrub2になり、/etc/default/grub を編集することになってます。

  • 使用するコアを1つ、1GBメモリに制限する場合(nr_cpus=1 mem=1024mを追加)
# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap biosdevname=0 net.ifnames=0 rhgb quiet nr_cpus=1 mem=1024m"
GRUB_DISABLE_RECOVERY="true"


編集が終わったら、configの生成と再起動を忘れずに。

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-4c78f5b870a447168afc0e881745647a
Found initrd image: /boot/initramfs-0-rescue-4c78f5b870a447168afc0e881745647a.img
done

# reboot

具体的なナレッジとしてはRedhatに以下の情報があります。
maxcpus kernel parameter is not working as expected as RHEL 7 system still has all CPUs enabled after boot is complete - Red Hat Customer Portal