是否可以禁用CPU(不是核心)?


10

是否可以禁用CPU而不是内核?我想做一个测试,以验证性能是否可以有很大的不同。

我正在使用Ubuntu 10.10。

Answers:


10

除了在BIOS中执行此操作外,grub还有一个名为的选项maxcpus

您可以通过maxcpus=1在参数中选择grub引导选项来编辑此选项。随机g图片:

在此处输入图片说明

选择“ e”,您将进入命令行,可以在其中添加选项。

您还可以通过复制当前启动选项并添加maxcpus=1到启动参数中,在grub中创建永久启动选项。您可以将其命名为“ Ubuntu,kernel 2.5.12-9-386(1 cpu)”,并将其与其他启动选项一起使用,如图所示。

您可以通过发出以下命令来验证在1个CPU上运行:

cat /proc/cpuinfo | grep processor 这应该显示如下内容:

处理器:0
处理器:1

并且使用1个CPU引导后,第二行应该消失。


1
这个问题也将成为一个非常刻薄的玩笑!:D
Alvar

如果将maxcpus = 0设置会怎样?:P
crazy2be

@Rinzwind我完全按照您的意思做了,但是结果似乎很奇怪,在进行grepping时,我在向参数添加“ maxcpus = 1”之前获得了12个处理器信息,但是修改后我仅获得了1个处理器信息,似乎只有一个核心所有12个内核均被激活。注意:我的计算机有两个六核CPU。
LeoYuan袁力皓

@ crazy2be猜测:第一个处理器称为0,所以您最终使用一个?:D
Rinzwind 2011年

@ LeoYuan88袁力皓您可以编辑cat / proc / cpuinfo的输出吗?用maxcpus = 1引导前后的grep处理器?
Rinzwind'6

7

您可以通过来动态禁用CPU /sys/devices/system/cpu/cpuN/online,例如禁用CPU 1,请使用:

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

并重新启用,请使用:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online

这似乎禁用了lcore,而不是CPU。对于系统上的每个逻辑核心,我都有其中一个目录。
sudo

1

您始终可以从其插槽中拔出CPU的电源。这是蛮力的,但是您可以确保获得所需的测试,并且不必担心内核/ BIOS /任何开关是否确实在按您的期望进行。

我公司在世界各地安装了大型服务器场。在我们的实验室中,有时为了进行此类测试,有时会从插槽中卸下CPU。

您可以使用多CPU NUMA系统进行此测试中的一个有趣变化。在这些类型的主板上,您可以卸下由一个物理CPU控制的所有内存DIMM。系统仍然可以正常启动,然后您可以将应用程序固定在各个内核上来运行测试,这将使您能够测量“本地”或“远程”内存的影响。


抱歉,我仍然不知道如何从CPU的插座中拔出CPU,您能告诉我该怎么做吗?
LeoYuan袁力皓

0

是否想查看多线程应用程序的性能以及内核数?在这种情况下,您可以使用taskset实用程序。我猜您有一台NUMA机器。您可以安装numactl实用程序,并通过使用它可以找到对应于哪个CPU的内核。例如,您的计算机具有两个四核CPUS(芯片)。通过使用taskset实用程序,您可以将一个CPU的内核设置为一组,并将其分配给您的应用程序。然后,您的应用程序仅使用一个CPU /芯片(四个内核)。如果您需要更多信息,请告诉我。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.