如何获取使用 Precise 12.04 amd64 的 isolcpus 内核参数?

rub*_*ojr 6 performance kernel 12.04

我一直在测试这些东西,试图在带有两个 Intel E5645 的主机中保留一些 CPU,但由于某种原因我无法让它工作。我遵循的步骤:

  1. 编辑 /etc/default/grub 并将 isolcpus=0,1 添加到 GRUB_CMDLINE_LINUX_DEFAULT

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=0,1"

  2. 运行更新grub

  3. 重启

之后, cat /proc/cmdline 显示:

BOOT_IMAGE=/boot/vmlinuz-3.2.0-26-generic root=UUID=52cfedad-40be-41b9-9f88-c282a7ae3f24 ro quiet splash isolcpus=0,1 vt.handoff=7
Run Code Online (Sandbox Code Playgroud)

使用压力测试:

apt-get install stress && stress -c 24
Run Code Online (Sandbox Code Playgroud)

使用 top 进行监控并按 1 以显示单个 CPU 统计信息。到目前为止,还没有 CPU 与调度程序隔离,并且所有 CPU 都因压力而崩溃。

Cpu0  : 99.7%us,  0.3%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu1  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu2  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu3  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu4  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu5  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu6  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu7  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu8  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu9  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu10 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu11 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu12 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu13 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu14 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu15 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu16 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu17 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu18 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu19 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu20 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu21 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu22 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Cpu23 :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa
Run Code Online (Sandbox Code Playgroud)

在 CentOS 6 x86_64 中测试了相同的东西,它按预期工作。

在启动板中搜索了 ubuntu 和 linux 错误数据库,但到目前为止没有找到任何东西。

是我愚蠢还是我错过了什么?提示?

谢谢!

参考:

http://www.kernel.org/doc/Documentation/kernel-parameters.txt

rub*_*ojr 5

在 BIOS 中禁用 SMT(超线程),重新启动电源,在 HT 关闭的情况下再次进行测试,isolcpus 按预期工作。

在 BIOS 中重新启用 SMT,然后重新启动,仍然按预期工作。

绝对不是您期望的最佳答案,但它仍然对我有用。

  • 您是说无论超线程设置如何,两次重新启动都会产生相同的结果吗?在这种情况下,也许重新启动是解决方法(?) (2认同)