阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何在 CentOS / RHEL 中启用/禁用 CPU(限制 CPU 数量)

75次阅读
没有评论

共计 3204 个字符,预计需要花费 9 分钟才能阅读完成。

导读 在具有多处理器的系统上禁用 / 启用处理器(动态)的过程是什么?如何将服务器限制为仅“N”个 CPU?在 CentOS/RHEL 中有三种方法可以限制 CPU 的数量。

如何在 CentOS / RHEL 中启用 / 禁用 CPU(限制 CPU 数量)
在具有多处理器的系统上禁用 / 启用处理器(动态)的过程是什么?如何将服务器限制为仅“N”个 CPU?

在 CentOS/RHEL 中有三种方法可以限制 CPU 的数量:

使用 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 系统中,此错误已得到修复。

您可以在 /boot/grub/grub.conf 中添加内核参数 maxcpus= N 或在引导时添加到内核行。例如,要限制服务器仅使用 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 系统上禁用 CPU。

当使用 maxcpus 时,它将从所有可用的物理 CPU 中获取 CPU。例如,在具有两个双核 CPU 的系统上,maxcpus=2 将从每个物理 CPU 中获取一个 CPU。要了解正在使用的物理 CPU ID,可以使用下面的查询:

# cat /sys/devices/system/cpu/cpu*/topology/physical_package_id
使用 nr_cpus 参数

对于 CentOS/RHEL 6,在 /boot/grub/grub.conf 或引导时的内核行中添加内核参数 nr_cpus=N。例如,下面的条目会将服务器限制为只有 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

对于 CentOS/RHEL 7:

(1) 对于 RHEL 7 系统,将 nr_cpus= N 参数添加到“/etc/sysconfig/grub”中的“

GRUB_CMDLINE_LINUX”行,如下所示。

# 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=“串行 --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 控制台 =ttyS0,115200 控制台 =tty0 vconsole.font=latarcyrheb-sun16 crashkernel=auto nr_cpus=2
...
禁用 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 : 0processor : 1
processor : 2
processor : 3

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计3204字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中