3.2. Регуляторы CPUfreq

Один из наиболее эффективных способов снижения потребления энергии и тепловыделения компонентов компьютера состоит в использовании подсистемы CPUfreq, позволяющей изменять скорость процессора на лету. Снижение скорости часов процессора помогает экономить энергию. Правила изменения частоты в большую или меньшую сторону определяются регуляторами.
Регулятор задает характеристики энергозатрат процессора, что оказывает влияние на его производительность. Каждый регулятор отвечает за определенное поведение, которое можно выбрать в зависимости от нагрузки. В этой секции рассказано о выборе и настройке регуляторов, их характеристиках и нагрузках, при которых они применяются.

3.2.1. Типы регуляторов CPUfreq

В этой секции рассматриваются типы регуляторов CPUfreq в Red Hat Enterprise Linux 6.
cpufreq_performance

Регулятор «performance» заставляет процессор использовать максимальную частоту часов. Значение частоты не изменяется динамически, поэтому этот регулятор не решает задачи энергосбережения. Он подходит только для длительной беспрерывной работы процессора.

cpufreq_powersave

Регулятор «powersave» заставляет процессор использовать минимальную частоту часов. Значение частоты не изменяется динамически, поэтому этот регулятор хоть и обеспечивает максимальную экономию энергии, но за счет значительного снижения производительности процессора.

Обычно медленный процессор при полной загрузке потребляет больше энергии по сравнению с быстрым, но не полностью загруженным процессором. Поэтому несмотря на рекомендации использования регулятора «powersave» в периоды ожидаемого бездействия, непредвиденная нагрузка может привести к высокому потреблению энергии вместо ожидаемой экономии.
Регулятор «powersave», по большому счету, ограничивает скорость процессора, а не экономит энергию. Его рекомендуется применять в окружениях с перегревающимися компонентами.
cpufreq_ondemand

Динамический регулятор «ondemand» позволяет достичь максимальной частоты процессора при высокой нагрузке и минимальной частоты при бездействии системы. Изменение частоты в зависимости от нагрузки происходит с задержкой, что при частом переключении между режимами может сказаться на общей экономии энергии.

Для большинства компьютеров регулятор «ondemand» позволяет достичь компромисса между тепловыделением, потреблением энергии и производительностью. Если нагрузка системы повышается в определенное время суток, «ondemand» будет автоматически переключаться между максимальной и минимальной частотой в зависимости от нагрузки.
cpufreq_userspace

Регулятор «userspace» позволяет пользовательским программам и процессам, выполняющимся в режиме root, задавать значение частоты. Обычно он используется в комбинации со службой cpuspeed, является наиболее гибким из всех перечисленных регуляторов в плане настройки и позволяет достичь оптимального баланса между производительностью системы и потреблением энергии.

cpufreq_conservative

Подобно «ondemand», регулятор «conservative» корректирует частоту процессора в зависимости от нагрузки, но переключается не между максимальной и минимальной частотой, а изменяет частоту постепенно.

Таким образом, «conservative» будет выбирать наиболее подходящую для уровня нагрузки частоту. Подобное изменение частоты происходит с еще большей задержкой по сравнению с использованием регулятора «ondemand».

Примечание

Регулятор можно включить с помощью заданий cron в определенное время. Так, например, можно настроить использование низкочастотного регулятора в периоды низкой активности (ночью), а в дневное время заменить его на высокочастотный регулятор.
Раздел 3.2.2, «Настройка CPUfreq» (см. Процедура 3.2, «Активация регулятора CPUfreq») содержит инструкции по активации регуляторов.