告诉Linux内核*不要*使用某些CPU


8

我正在尝试在多核计算机上运行一些基准测试,我想告诉Linux内核仅避免使用某些内核,除非明确告知要使用它们。

我的想法是,我可以留出一些内核(该机器有6个物理内核)进行基准测试,并使用cpu mask仅允许将基准测试过程应用于给定的内核。

这可行吗?


您要运行哪些实际基准?
Basile Starynkevitch 2015年

Answers:


5

您可以使用isolcpus参数将某些CPU内核与内核调度隔离开。将此参数添加到您的grub.conf中,然后重新启动以生效。


2
链接已死。最好在答案中直接包含一个示例。
pchaigno

4

您需要一些处理器关联性(或CPU关联性)。

相关的系统调用是sched_setaffinity(2),但如果要为此编写基准测试,则应通过pthread_set_affinity_np(3)使用它。

相关的命令是taskset(1),您可以在要进行基准测试的命令(或您的shell)上使用它。

如果可能,请注意不要因与基准测试无关的其他任务而使机器负载不大。

或者,使用某些虚拟机管理程序(例如Xen),然后将Linux作为该虚拟机管理程序的来宾操作系统启动。然后配置xen为仅使用某些受限制的CPU内核集(我不知道确切的详细信息,您需要了解)。在Debian(和相关)的分布,你可能会像安装包xen-linux-system-amd64xen-hypervisor-amd64xen-utils等(我用在Debian /希德xen-hypervisor-4.5-amd64xen-linux-system-4.0.0-1-amd64xen-utils-4.5 等...)。

可能有一些配置Linux内核的方法(也许是在内核编译时,或者通过Grub加载器将特定参数传递给内核)来限制可用内核的数量。

当然,最好是,一个标杆桌面Linux PC-某些程序的时候-例如,照顾,以避免许多外运行的进程(用ps auxwpstree -ptop找到这些)。至少,关闭并退出大多数交互式应用程序(浏览器,如firefox,电子邮件,编辑器,IDE等,如Eclipse),并仅保留少量终端进行基准测试。您甚至在未登录时(甚至没有任何GUI会话,例如GnomeKDEXfce等正在运行),甚至可能以批处理模式进行基准测试(使用batchat运行基准测试)。


设置任务与基准之间的亲和力还不够。您还必须保留其他任务。您的系统管理程序建议可以执行的操作,但是非常费劲。
吉尔(Gilles)'所以

@吉尔斯:为什么为了基准测试目的而需要保留其他任务?实际上,在进行基准测试时,PC经常处于闲置状态……对于昂贵的服务器,情况有所不同!
Basile Starynkevitch 2015年

例如,因为您要在台式机上进行基准测试,这也将资源用于Firefox,Eclipse和其他要求很高的任务。
吉尔斯(Gilles)'所以

在您自己的台式PC上,在进行基准测试时,您可以轻松停止最耗时的任务(例如,关闭并退出Firefox和Eclipse)。您甚至可以在未登录时以批处理模式(使用atbatch)运行基准测试(因此不要运行任何消耗性会话)。
Basile Starynkevitch
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.