您不必关闭或禁用内核。
您将使用cpusets和taskset
http://man7.org/linux/man-pages/man7/cpuset.7.html
cpuset定义了CPU和内存节点的列表。
cpuset文件系统是内核cpuset机制的伪文件系统接口,用于控制处理器的处理器位置和进程的内存位置。它通常安装在/ dev / cpuset。
在内核编译为内置支持cpusets的系统上,所有进程都附加到cpuset,并且cpusets始终存在。如果系统支持cpuset,则它将在文件/ proc / filesystems中具有条目nodev cpuset。通过安装cpuset文件系统(请参见下面的示例部分),管理员可以在系统上配置cpuset,以控制该系统上处理器和进程的内存位置。默认情况下,如果未修改系统上的cpuset配置,或者甚至没有安装cpuset文件系统,则cpuset机制(尽管存在)对系统的行为没有影响。
系统的CPU包括可以在其上执行进程的所有逻辑处理单元,包括(如果存在)程序包中的多个处理器内核和处理器内核中的超线程。内存节点包括所有不同的主内存;小型和SMP系统通常只有一个内存节点,其中包含系统的所有主内存,而NUMA(非统一内存访问)系统具有多个内存节点。
简而言之,如果您有1个具有6个内核的cpu,则可以配置cpuset,并在仅配置一个内核的cpuset中启动您的进程,例如说3号内核。如果这是一个并行进程,则将全部限制在一个内核中,这样,如果您在给定的cpuset中启动了仅定义了一个内核的4个进程,则这4个进程中的每个进程在3号内核上都将获得25%的cpu利用率。
在此基础上,通常发生的情况是配置了cpuset
- 例如,在200+内核系统中,cpusetA是0..60内核,无论它们位于何处,cpusetB都是61..70内核;cpusetC是核心71..80;依此类推,但是管理员/建筑师选择配置。
- cpusetA被分配给某些用户和/或特定的软件程序;cpusetB被分配给不同的用户/程序;等等。
- 用户在给定的cpuset中启动了一个作业(进程),该请求将请求N个内核,而现在,这些多个(并行)进程被限制在给定的cpuset中。对于限于一个给定cpuset的N个并行处理,每个进程将/应该使用处理器亲和力或cpu亲和力,因此这些并行进程不会在cpuset内的不同内核上运行。
还:https : //linux.die.net/man/1/taskset
maxcpus=1
条命令?您是否将该字符串grub.cfg
作为启动选项?(请更新您的问题,而不要在评论中回答)。