http://www.debian.org/logos/openlogo-nd-50.png http://www.debian.org/Pics/debian.png

Translation(s): - Русский


Управление режимами работы процессора


Этот раздел поможет наглядно установить и настроить утилиты для управления энергопотреблением и производительностью процессора.


Страница находится в разработке


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



Анализ возможностей по управлению


Устанавливаем сpufreq-utils - набор утилит для управления режимами работы процессора

# aptitude install сpufreq-utils

Подробный вывод возможностей процессора

cpufreq-info

Смотрим какие режимы (регуляторы) поддерживает процессор

cpufreq-info -g

В большинстве случаев, если их меньше пяти, то что-то настроено не так. Для решения этой проблемы сперва проще всего перезагрузить систему и проверить ещё раз. Если не помогло, то следует проверить наличие регуляторов в конфигурационном файле ядра, а также убедиться, что загружены модули регуляторов.


Так называемые регуляторы (governors) являются схемами управления питанием. Они должны быть загружены как модули ядра, чтобы их видели такие программы как kpowersave и gnome-power-manager. Вы можете загрузить столько регуляторов, сколько захотите, но только один будет активен. Тем самым вы выберете подходящую для вас схему питания.


Подробное описание регуляторов


Регуляторы powersave и performance.

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

Регулятор userspace

Теперь мы приступаем к обсуждению настроек для конкретных регуляторов. При задействованном регуляторе userspace в каталоге cpufreq будет присутствовать файл scaling_setspeed , доступный на запись для root. Этот регулятор даёт пользователю или программе в пользовательском пространстве возможность изменять тактовую частоту процессора. С помощью команды echo пользователь может внести нужное значение частоты в этот файл или же представить возможность установить эту частоту какому-нибудь демону в пользовательском пространстве. Как говорилось ранее, во время обсуждения файлов настроек, вносить настройку в файл scaling_setspeed необходимо для каждого из процессоров.

С регулятором userspace взаимодействуют несколько демонов, которые могут настраивать частоту процессора. Например:

Регулятор Ondemand

При задействованном регуляторе ondemand в каталоге cpufreq присутствует каталог ondemand. В этом каталоге имеется множество регулируемых настроек. Все файлы, доступные на запись для root, можно изменить, вписав новое значение с помощью команды echo, как показывалось ранее. Заметьте, что любые изменения в настройках регулятора ondemand будут применяться на общесистемном уровне, поэтому нет необходимости изменять настройки для каждого процессора.

Проверяем изменяемые настройки для ondemand

[root@systemx ~]# cd /sys/devices/system/cpu/cpu0/cpufreq/ondemand/
[root@systemx ondemand]# ls -l
total 0
-rw-r--r-- 1 root root 4096 Nov 19 10:30 ignore_nice_load
-rw-r--r-- 1 root root 4096 Nov 19 10:30 powersave_bias
-rw-r--r-- 1 root root 4096 Nov 19 10:30 sampling_rate
-r--r--r-- 1 root root 4096 Nov 19 10:30 sampling_rate_max
-r--r--r-- 1 root root 4096 Nov 19 10:30 sampling_rate_min
-rw-r--r-- 1 root root 4096 Nov 19 10:30 up_threshold

В файл ignore_nice_load вписывается значение 0 или 1 (по умолчанию 0). При установленном параметре "1" любой процесс с установленными значением "nice" не будет учитываться при расчёте общего использования процессора. При параметре "0" учитываются все процессы. Эта настройка может пригодиться, если у вас есть программа, требовательная к процессорным ресурсам, но продолжительность ее работы не имеет значения. Если применить настройку "nice" к процессу, он не будет влиять на изменения частоты.

Далее, настройки файла powersave_bias были введены для того, чтобы слегка изменять поведение регулятора ondemand в целях большей экономии энергии путём снижения определённой частоты на указанный процент в ситуациях, когда пользователю не очень важна производительность. Эта настройка может иметь значение от 1 до 1000, что дает от 0.1% до 100% снижения частоты. sampling_rate, измеряемая в микросекундах, определяет, насколько часто регулятор будет проверять использование процессора для определения нужной частоты. Эта настройка принимает значение в промежутке от sampling_rate_min до sampling_rate_max.

Наконец, настройка up_threshold даёт пользователю возможность изменять пороговое значение максимального использования процессора, влекущее за собой изменение частоты процессора. Значение по умолчанию — 80. Это означает, что через определённые промежутки, указанные в настройке sampling_rate, ядро проверяет процент использования процессора, и при 80% регулятор повышает частоту до максимально возможной.

Регулятор conservative

При использовании регулятора conservative в каталоге cpufreq появляется подкаталог conservative. В этом подкаталоге имеется множество настроек. Все файлы, доступные на запись для root, можно изменять, вписывая в них новое значение с помощью команды echo, как было показано ранее. Заметьте, что любые изменения в настройках регулятора conservative будут применяться на общесистемном уровне, поэтому нет необходимости изменять настройки для каждого процессора.

Настройки, доступные для регулятора conservative

[root@systemx ~]# cd /sys/devices/system/cpu/cpu0/cpufreq/conservative/
[root@systemx conservative]# ls -l
total 0
-rw-r--r-- 1 root root 4096 Nov 19 11:31 down_threshold
-rw-r--r-- 1 root root 4096 Nov 19 11:31 freq_step
-rw-r--r-- 1 root root 4096 Nov 19 11:31 ignore_nice_load
-rw-r--r-- 1 root root 4096 Nov 19 11:31 sampling_down_factor
-rw-r--r-- 1 root root 4096 Nov 19 11:31 sampling_rate
-r--r--r-- 1 root root 4096 Nov 19 11:31 sampling_rate_max
-r--r--r-- 1 root root 4096 Nov 19 11:31 sampling_rate_min
-rw-r--r-- 1 root root 4096 Nov 19 11:31 up_threshold

Настройки ignore_nice_load, sampling_rate, sampling_rate_max, sampling_rate_min и up_threshold аналогичны настройкам, уже описанным для регулятора ondemand. Регулятор conservative также даёт пользователю возможность настроить значение down_threshold. К примеру, по умолчанию это значение настроено на 20. Это означает, что через определённые промежутки, указанные в настройке sampling_rate, ядро проверяет процент использования процессора, и если это значение ниже 20%, регулятор будет снижать частоту.

Настройка freq_step изменяет размер шага (в ту или иную сторону), на который регулятор изменяет частоту процессора. По умолчанию это значение равно 5, то есть регулятор будет изменять частоту на 5 процентов от максимальной или минимальной каждый раз, когда он принимает решения об изменении частоты. В случае, если значение равно 100, регулятор будет действовать точно так же, как и регулятор ondemand.

Наконец, sampling_down_factor работает как множитель к значению sampling_rate для снижения частоты опроса процессора. Например, если значение sampling_rate равно 10000, а значение sampling_down_factor — 2, то ядро будет проверять процент использования процессора каждые 20000 микросекунд.


Ручная регулировка


Выбор и настройку регуляторов удобнее всего выполнять с помощью утилиты cpufreq-set.

Например для двухъядерного процессора выставляем динамический режим ondemand:

cpufreq -g ondemand -c 1
cpufreq -g ondemand -c 0

За подробностями обращайтесь к cpufreq-set --help.


Разовая регулировка при включении компьютера


К примеру мы хотим, чтобы частота обеих ядер не превышала 1,5GHz и изменение происходило в плавном режиме. Редактируем файл конфигурации

nano /etc/init.d/cpufrequtils
#
ENABLE="true"
GOVERNOR="conservative"
MAX_SPEED="1500000"
MIN_SPEED="0"

Можно применить их сразу

/etc/init.d/cpufrequtils start

При перезагрузке эти параметры будут применяться автоматически.


Динамическая регулировка в зависимости от выполняемых задач cpufreqd


_ В разработке _