Я хочу отключить 3 ядра процессора и запустить свой процессор на одном ядре. Я использовал команду: maxcpus=1
. Но после этого я выполнил эту команду ls /sys/devices/system/cpu
. Это все еще показывает cpu0,cpu1,cpu2,cpu3
.
Я также попытался: echo 0 > /sys/devices/system/cpu3/online
но я получаю следующее сообщение об ошибке: no such file or directory
.
maxcpus=1
комманду ? Вы поместили эту строку вgrub.cfg
качестве параметра загрузки? (Пожалуйста, обновите свой вопрос вместо того, чтобы отвечать в комментариях).maxcpus=1
) зависит от дистрибутива. Также у/sys
вас просто неправильный путь, правильный путь/sys/devices/system/cpu/cpu3/online
.Ответы:
Как указал Патрик в комментарии , вы
/sys
ошиблись.Если вы хотите выключить все процессоры, кроме
cpu0
:Ввод
maxcpus=1
в приглашении оболочки не имеет никакого эффекта. Точнее, она устанавливает переменнуюmaxcpus
на значение1
в этой оболочке, которая не имеет никакого другого эффекта. Вы можете установить количество процессоров во время загрузки, передавая вmaxcpus
качестве параметра ядра . Для этого вам нужно изменить конфигурацию вашего загрузчика (например, изменить командную строку ядра в U-Boot).источник
/sys/devices/system/cpu/online
и./offline
файлы для управления всеми ядрами.core
и выключить?Вы не обязательно выключаете или отключаете ядра.
вы бы использовали процессоры и набор задач
http://man7.org/linux/man-pages/man7/cpuset.7.html
Короче говоря, если у вас 1 процессор с 6 ядрами, вы сконфигурируете процессоры и запускаете процесс в процессоре , настроенном только на одном ядре, например, на ядре № 3. Если бы это был параллельный процесс, все это было бы ограничено этим одним ядром, так что если вы запустили 4 процесса в данном процессоре, для которого определено только одно ядро, то каждый из 4 процессов получит 25% загрузки процессора на ядре № 3.
Основываясь на этом, обычно происходит то, что процессор настроен так, что
также: https://linux.die.net/man/1/taskset
источник