$ echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online $ dmesg .... [ 2026.821631] CPU0 attaching NULL sched-domain.
[ 2026.821641] CPU1 attaching NULL sched-domain.
[ 2026.869148] CPU0 attaching NULL sched-domain. [ 2026.875937] CPU 1 is now offline
[ 2026.875945] SMP alternatives: switching to UP code
Чтобы включить ядро обратно, нужно:
$ echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online $ dmesg .... [ 2097.441078] SMP alternatives: switching to SMP code [ 2097.642192] Booting processor 1 APIC 0x1 ip 0x6000 [ 2027.140078] Initializing CPU#1 [ 2027.140078] CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) [ 2027.140078] CPU: L2 Cache: 512K (64 bytes/line) [ 2027.140078] CPU 1/0x1 -> Node 0
[ 2097.656021] CPU1: [ 2027.140078] kvm-clock: cpu 1, msr 0:1915701, secondary cpu clock [ 2097.656021] AMD QEMU Virtual CPU version 1.1.2 stepping 03 [ 2097.656021] CPU0 attaching NULL sched-domain. [ 2197.128013] CPU0 attaching sched-domain: [ 2197.128013] domain 0: span 0-1 level CPU [ 2197.128013] groups: group ffff88000180fd00 cpus 0 group ffff88000190fd00 cpus 1 [ 2197.128013] CPU1 attaching sched-domain: [ 2197.128013] domain 0: span 0-1 level CPU [ 2197.128013] groups: group ffff88000190fd00 cpus 1 group ffff88000180fd00 cpus 0
Эти изменения будут действовать, пока систему не перезагрузят. Чтобы уменьшить количество ядер перманентно нужно передать ядру параметр
maxcpus=N
, где N - количество ядер, которые нужно подключить в системе при загрузке.
Подскажите, а зачем может понадобится отключение ядра?
ОтветитьУдалитьТестирую производительность приложения на различных комбинациях количества ядер процессора и объема оперативной памяти. Чтобы каждый раз не перезагружать сервер, проще отключать ядра таким способом.
УдалитьПодскажите, пожалуйста. Есть 4-х ядерный процессор с "убитым" ядром номер два. Как можно отключить второе ядро так, чтобы оно не задействовалось системой вообще?
ОтветитьУдалитьМожно попробовать загрузить ядро с параметром max_cpus=1, а затем включить нужные ядра
Удалитьecho 1 > /sys/devices/system/cpu/cpu2/online
echo 1 > /sys/devices/system/cpu/cpu3/online
В результате должны активироваться ядра 0,2,3.
Извините за, возможно, глупый вопрос, но как загрузить ядро с параметром max_cpus=1 ? Я, так сказать, начинающий пользователь линукса..
УдалитьСмотри тут =)
УдалитьАндрей, большое спасибо Вам за помощь! Загружаю ОС с параметром "maxcpus=1", затем подключаю два рабочих ядра:
Удалитьecho 1 | sudo tee /sys/devices/system/cpu/cpu2/online
echo 1 | sudo tee /sys/devices/system/cpu/cpu3/online
Все работает. Осталось с виртуальными машинами и Wine'ом разобраться)
Интересная штука, у меня неттоп с пассивным охлаждением, у которого ограничения по TPD, когда все ядра нагружаются, то частота в 2.7ггц сбрасывается до 1.6, но при этом одно ядро с хорошей частотой позволит достаточно быстро работать запущенному софту, вот думаю вместо 4х ядер сделать только 3 и им будет хватать чтобы на бустовых частотах работать и укладываться в TPD
ОтветитьУдалить