В начало → Управление питанием компьютера → Управление питанием ЦПУ |
Мобильные процессоры могут работать на нескольких частотах, а некоторые позволяют даже менять напряжение. Максимальная производительность нужна далеко не всегда, и меняя её можно сохранить немало энергии, причём зачастую без какого-либо понижения производительности
Частота процессора связана с некоторыми техническими терминами, который могут быть вам незнакомы, поэтому ниже будет дано краткое введение.
Для начала, ядро должно "уметь" менять частоту процессора. Драйвер процессора CPUfreq (CPUfreq processor driver) знает как сделать это на вашем ЦП, поэтому важно указать его правильно в вашем ядре. Скорее всего,
вы это уже сделали выше. Также ядро должно знать, какую частоту устанавливать. Это достигается посредством политик (policy), которые состоят из политики CPUfreq (CPUfreq policy) и властелина (governor). Первое – это пара из двух чисел, обозначающих максимальную и минимальную допустимую частоту ЦП, а второе отвечает
за то, какую конкретно частоту выбрать. Так, властелин сохранения энергии (powersave governor) всегда выбирает минимальную
допустимую частоту, а властелин максимальной производительностью (performance governor), наоборот, максимальную; властелин
пользователя (userspace governor) использует необходимую пользователю (или его приложениям) частоту, читая её из
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
.
Всё это не очень похоже на динамическое изменение частоты (и действительно не является таковым). Однако динамика может быть получена несколькими способами. Например, "требовательный" властелин (ondemand governor) принимает решение, основываясь на текущей загрузке ЦП. Это же может быть реализовано посредством различных пользовательских инструментов таких, как cpudn, cpufreqd, powernowd и многих других. События ACPI можно использовать для включения или выключения динамического изменения частоты в зависимости от источника питания.
Уменьшение скорости и напряжение на ЦП даёт двойной выигрыш: с одной стороны, потребляется меньше энергии, а с другой – ваша система греется не так сильно, как на полной мощности. Главный недостаток – очевидная потеря производительности. Уменьшение скорости процессора – обмен производительности на сохранение энергии.
Примечание: Не все ноутбуки поддерживают изменение частоты. Если вы не уверены, посмотрите список поддерживаемых процессоров в секции Устранение неполадок.
Самое время проверить, работает ли изменение частоты процессора. Давайте установим ещё один очень полезный при отладке инструмент: sys-power/cpufrequtils
Вывод будет примерно таким:
Листинг 13. Пример вывода cpufreq-info
cpufrequtils 0.3: cpufreq-info (C) Dominik Brodowski 2004 Report errors and bugs to linux@brodo.de, please. analyzing CPU 0: driver: centrino CPUs which need to switch frequency at the same time: 0 hardware limits: 600 MHz – 1.40 GHz available frequency steps: 600 MHz, 800 MHz, 1000 MHz, 1.20 GHz, 1.40 GHz available cpufreq governors: conservative, ondemand, powersave, userspace, performance current policy: frequency should be within 924 MHz and 1.40 GHz. The governor "performance" may decide which speed to use within this range. current CPU frequency is 1.40 GHz. governor "conservative" may decide which speed to use within this range. current CPU frequency is 1.60 GHz.
Теперь, поиграйтесь с cpufreq-set, чтобы убедиться в работоспособности переключение частоты. Например, выполните cpufreq-set -g ondemand, чтобы активировать "требовательного" властелина, и проверьте изменение с помощью cpufreq-info. Если не работает как надо, вы можете попробовать найти причину в Устранении неполадок в конце этого руководства.
Сказанное, конечно, прекрасно, но не очень применимо в реальной жизни. Лучше поручить вашей системе автоматически подбирать подходящую частоту. Есть много способов сделать это. Следующая таблица даёт общее представление о них и поможет вам выбрать необходимый. Их можно не совсем точно разделить на три типа: ядро – для методов нуждающихся только в поддержке ядра, демон – для запускающихся в фоне программ и графический – для программ, которые предоставляют графический интерфейс для простой настройки.
Имя |
Тип |
Причины для переключения (Switch decision) |
Используемые властелины ядра (Kernel governors) |
Предоставляемые режимы (Further governors) |
Комментарии |
---|---|---|---|---|---|
требовательный властелин ('ondemand' governor) |
Ядро |
Загрузка ЦП |
- |
- |
Выставляет максимальную частоту при загрузке ЦП и медленно шагает вниз во время простоя ЦП. Дальнейшая настройка через |
консервативный властелин ('conservative' governor) |
Ядро |
Загрузка ЦП |
- |
- |
В отличие от требовательного властелина, консервативный не прыгает до максимальной частоты во время высокой загрузки ЦП, а
увеличивает частоту постепенно. Дальнейшая настройка через |
Демон |
Загрузка ЦП |
Производительность, сохранение энергии |
Динамические |
Также поддерживает disk standby. Однако стоит заметить, что laptop-mode в большинстве случаев работает лучше. |
|
Демон |
Состояние батареи, загрузка ЦП, температура, запущенные программы и др. |
Все возможные |
Нет |
Тонкая (и местами сложная) установка. Расширяем посредством плагинов, таких как отслеживание показаний сенсоров (sensor monitoring) (lm_sensors). Может управлять памятью и ядром некоторых построенных на NVidia графических карт. Cpufreqd не поддерживает SMP, и при желании им можно управлять вручную во время выполнения. |
|
Демон |
Загрузка процессора |
Нет |
Пассивный, синусоидальный (sine), агрессивный |
Поддерживает SMP. |
|
Демон |
Температура |
Нет |
Производительность, сохранение энергии |
Переключает властителинов производительности и сохранения энергии. Очень полезен на ноутбуках, страдающих перегревом. |
|
Демон |
Загрузка ЦП |
Нет |
Динамический, сохранения энергия, производительность, фиксированной скорости |
Легко настраивается с помощью приятного клиент-серверного интерфейса. Требуется ядро 2.6. Не поддерживается, сломан и поэтому удален из портежей. Пожалуйста, перейдите на cpufreqd, если вы всё ещё используете эту программу. |
|
Графический |
Нет |
Нет |
Нет |
Gnome-приложение, графический инструмент для ручной установки частоты процессора. Не предоставляет никакой автоматизации. |
|
klaptopdaemon |
Графический |
Состояние батареи |
Все возможные |
Нет |
Только для КДЕ, властелин требований для динамического изменения частоты. |
Хотя изменение частоты в зависимости от нагрузки выглядит просто на первый взгляд, это не такая уж и тривиальная задача. Плохой алгоритм может привести к постоянному переключению между двумя частотами или бессмысленному перерасходу энергии из-за неоправданно большой частоты.
Что выбрать? Если вы не можете решить, попробуйте cpufreqd.
cpufreqd настраивается редактированием /etc/cpufreqd.conf
. Конфиг, предоставляемый по умолчанию, может вас несколько смутить. Рекомендуется заменить его на конфигурационный файл,
который создал бывший разработчик Gentoo – Henrik Brix Andersen. Учтите, что вам необходим cpufreqd-2.0.0 или более новая
версия. Ранние версии используют другой синтаксис конфигурационного файла.
Листинг 15. /etc/cpufreqd.conf (cpufreqd-2.0.0 или более новый)
[General] pidfile=/var/run/cpufreqd.pid poll_interval=3 enable_plugins=acpi_ac, acpi_battery enable_remote=1 remote_group=wheel verbosity=5 [/General] [Profile] name=ondemand minfreq=0% maxfreq=100% policy=ondemand [/Profile] [Profile] name=conservative minfreq=0% maxfreq=100% policy=conservative [/Profile] [Profile] name=powersave minfreq=0% maxfreq=100% policy=powersave [/Profile] [Profile] name=performance minfreq=0% maxfreq=100% policy=performance [/Profile] [Rule] name=battery ac=off profile=conservative [/Rule] [Rule] name=battery_low ac=off battery_interval=0-10 profile=powersave [/Rule] [Rule] name=ac ac=on profile=ondemand [/Rule]
Теперь вы можете запустить демон cpufreqd. Добавьте его в уровни запуска default и battery.
Иногда желательно установить политику отличную от той, что выбрал демон. Например, если заряд батареи низок, но вы знаете, что скоро появится питание от сети. В этом случае вы можете перевести cpufreqd в ручной режим с помощью команды cpufreqd-set manual и далее выбрать одну из сконфигурированных политик (они перечислены в cpufreqd-get). Выйти из ручного режима вы можете командой cpufreqd-set dynamic.
Не запускайте одновременно более одной программы, перечисленной выше. Это может привести к конфликтах таких, как постоянное переключение между двумя частотами.
Осталось только проверить, что ваши новые политики работают правильно. Простой способ сделать это – следить за скоростью ЦП во время работы:
Если /proc/cpuinfo
не обновляется (см. Устранение неполадок), попробуйте sys-apps/x86info:
В зависимости от ваших настроек, частота должна возрастать при нагрузке, падать в спокойном состоянии, или оставаться на том же уровне. Если вы используете cpufreqd и уровень подробности (verbosity) равен 5 или больше в cpufreqd.conf, то вы можете найти дополнительную информацию о происходящем в syslog.
В начало → Управление питанием компьютера → Управление питанием ЦПУ |