10

В Linux вы можете отключить ядра ЦП (или физические ЦП) с помощью echo 0> /sys /devices /system /cpu /cpu1 /online. Предполагая, что аппаратное обеспечение полностью отключает ЦП и отключает питание, было бы лучше отключить его. ядра полностью вместо того, чтобы полагаться на различные состояния сна процессора?

Чтобы проиллюстрировать этот принцип, я подумал что-то вроде этого (псевдокод) для системы с четырьмя процессорами:

if(loadavg > 3.00) echo 1 > /sys/devices/system/cpu/cpu3/online
if(loadavg < 3.00) echo 0 > /sys/devices/system/cpu/cpu3/online

if(loadavg > 2.00) echo 1 > /sys/devices/system/cpu/cpu2/online
if(loadavg < 2.00) echo 0 > /sys/devices/system/cpu/cpu2/online

if(loadavg > 1.00) echo 1 > /sys/devices/system/cpu/cpu1/online
if(loadavg < 1.00) echo 0 > /sys/devices/system/cpu/cpu1/online

1 ответ1

6

Установка оперативного статуса ядра ЦП просто говорит планировщику процессов не использовать это ядро для каких-либо процессов. На аппаратном уровне ядро просто бездействует (выполняет NOP ), но все еще работает. Несмотря на то, что это экономит электроэнергию, оно не будет экономить почти столько же энергии, сколько перевести компьютер в режим сна. Зачем?

Ну, ваша материнская плата, процессор и графический процессор все еще работают ! Когда вы переводите компьютер в спящий режим, все эти компоненты буквально отключены, и потребляется достаточно энергии для поддержания оперативной памяти (порядка пары ватт).

Опять же, хотя я согласен, что это сэкономит электроэнергию, даже отключение половины процессорных ядер может вдвое снизить энергопотребление процессора (хотя в действительности вы можете сэкономить только 30-40%, поскольку эти ядра все еще должны сидеть без дела), но это далеко не единственный компонент в системе, использующий энергию. Даже если вы сэкономите 50 Вт, тем не менее весь компьютер потребляет гораздо больше энергии, чем просто ватт в режиме ожидания.


Заключительные мысли: хотя я согласен, что это отличная идея на практике, именно поэтому многие производители процессоров включают динамическое масштабирование частоты (Intel Step Speed Speed) с поддержкой Linux. Вы можете повысить общую производительность и эффективность энергопотребления, настроив эти частоты в соответствии с вашими потребностями. Это может быть сделано как в аппаратном (настройки BIOS), так и в программном обеспечении (ядро Linux позволяет вам изменять некоторые параметры ЦП, подробности см. По ссылке, которую я разместил выше, или на этом веб-сайте ).

Это работает, потому что следующее является общим уравнением для потребляемой мощности схемы CMOS:

P = CV 2 f, где C = емкость (предположим, фиксированная), V = напряжение и f = частота.

Таким образом, деление частоты на 2 приведет к половине первоначальной потребляемой мощности. Деление напряжения на 2 снизит энергопотребление до 1/4 от исходного.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .