Вы не обязательно выключаете или отключаете ядра.
вы бы использовали процессоры и набор задач
http://man7.org/linux/man-pages/man7/cpuset.7.html
Процессор определяет список процессоров и узлов памяти ...
Файловая система cpuset представляет собой интерфейс псевдофайловой системы к механизму cpuset ядра, который используется для управления размещением процессора и размещения памяти в процессах. Обычно он монтируется в / dev / cpuset.
В системах с ядрами, скомпилированными со встроенной поддержкой процессоров, все процессы подключены к процессору, и процессоры всегда присутствуют. Если система поддерживает cpusets, то она будет иметь запись nodev cpuset в файле / proc / filesystems. Смонтировав файловую систему cpuset (см. Раздел «ПРИМЕР» ниже), администратор может настроить процессорные наборы в системе для управления процессором и размещением процессов в памяти в этой системе. По умолчанию, если конфигурация cpuset в системе не изменена или файловая система cpuset даже не смонтирована, тогда механизм cpuset, хотя и присутствует, не влияет на поведение системы.
Процессоры системы включают в себя все логические процессоры, на которых может выполняться процесс, в том числе, если они имеются, несколько процессорных ядер в пакете и гиперпотоки в ядре процессора. Узлы памяти включают в себя все отдельные банки основной памяти; В малых и SMP-системах обычно имеется только один узел памяти, который содержит всю основную память системы, в то время как системы NUMA (с неоднородным доступом к памяти) имеют несколько узлов памяти.
Короче говоря, если у вас 1 процессор с 6 ядрами, вы сконфигурируете процессоры и запускаете процесс в процессоре , настроенном только на одном ядре, например, на ядре № 3. Если бы это был параллельный процесс, все это было бы ограничено этим одним ядром, так что если вы запустили 4 процесса в данном процессоре, для которого определено только одно ядро, то каждый из 4 процессов получит 25% загрузки процессора на ядре № 3.
Основываясь на этом, обычно происходит то, что процессор настроен так, что
- в системе с ядром 200+, например, cpusetA - это ядра 0 ... 60, где бы они ни находились, cpusetB - это ядра 61..70; cpusetC - это ядра 71..80; и так далее, однако администратор / архитектор выбирает для настройки.
- cpusetA выделяется для определенных пользователей и / или определенных программ; cpusetB выделен разным пользователям / программам; и так далее.
- пользователь запускает задание (процесс), которое запрашивает N ядер ... в данном процессоре, и теперь эти множественные (параллельные) процессы ограничиваются данным процессором. А для тех N параллелей, ограниченных данным процессором, каждый из этих процессов будет / должен использовать привязку процессора или привязку процессора, чтобы эти параллельные процессы не перебрасывались на разных ядрах внутри процессора.
также: https://linux.die.net/man/1/taskset
maxcpus=1
комманду ? Вы поместили эту строку вgrub.cfg
качестве параметра загрузки? (Пожалуйста, обновите свой вопрос вместо того, чтобы отвечать в комментариях).