社区编辑申请
注册/登录
如何在 CentOS / RHEL 中启用/禁用 CPU(限制 CPU 数量)
系统
在具有多处理器的系统上禁用/启用处理器(动态)的过程是什么?如何将服务器限制为仅“N”个 CPU?在 CentOS/RHEL 中有三种方法可以限制 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

2. 使用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
...

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
责任编辑:赵宁宁 来源: 今日头条
相关推荐

2022-06-20 22:37:25

Linux操作系统命令

2022-06-20 14:19:55

FedoraEPELLinux

2022-06-10 07:45:09

CentOS国产操作系统

2022-03-25 10:16:40

CentOSLinux开源

2022-03-04 18:14:26

CentOSLinux

2022-05-23 07:48:10

zabbix监控CentOS7

2022-03-03 09:34:28

CentOS 8服务器替代

2022-03-07 06:39:32

CentOSOracleLinux

2022-06-16 10:14:51

LinuxEmacs编辑器

2022-05-31 07:40:44

LsyncdCentOS7

2022-05-20 13:46:36

Linux激活Linux水印

2019-11-05 11:20:36

CentOS 8RHEL 8Linux

2022-05-28 16:14:13

手机更新APP

2010-01-13 17:00:54

CentOS MySQ

2022-06-22 10:23:42

互联网用户IE浏览器退休

2022-04-01 09:00:00

Linux安全SSH

2022-06-14 23:34:10

Linux安全服务器

2018-11-12 10:30:03

CentOSLinux仓库

2022-03-02 09:53:44

开源ZabbixCentOS 7

2022-06-20 09:49:25

Linux发行版

同话题下的热门内容

微软 Windows 11 Build 22000.778 (KB5014668) 发布:新增搜索亮点,带来大量修复内容用这些开源工具在 Linux 上编辑 PDF 文件面对验证码 iOS 16给出了最完美的解决方案谷歌 Chrome 浏览器 103 正式版发布:页面加载速度更快,支持本地字体访问、Web 共享 AVIF 文件Docker Compose:搭建开发环境的好方式为什么用C语言编写操作系统?在 Linux 上玩电子游戏的三种方式为什么命令行在 Linux 生态系统中如此重要

编辑推荐

你应该知道的八款国产操作系统为什么你可能想要略过Ubuntu 17.04?HarmonyOS 2.0鸿蒙第二期开发者Beta公测申请指南让后端开发情何以堪?前端程序猿薪资大曝光谷歌“断供”华为!中国真写不出操作系统?
我收藏的内容
点赞
收藏

51CTO技术栈公众号