Translation(s): - Русский
Управление режимами работы процессора
Этот раздел поможет наглядно установить и настроить утилиты для управления энергопотреблением и производительностью процессора.
Страница находится в разработке
Если есть что добавить, дополняйте разделы новой информацией. Наши опечатки и ошибки в статье можно править смело, нет необходимости сообщать об этом на почту, просьба соблюдать стилевое оформление этой страницы и использовать разделители разделов (серые линии различной толщины).
Contents
Анализ возможностей по управлению
Устанавливаем сpufreq-utils - набор утилит для управления режимами работы процессора
# aptitude install сpufreq-utils
Подробный вывод возможностей процессора
cpufreq-info
Смотрим какие режимы (регуляторы) поддерживает процессор
cpufreq-info -g
В большинстве случаев, если их меньше пяти, то что-то настроено не так. Для решения этой проблемы сперва проще всего перезагрузить систему и проверить ещё раз. Если не помогло, то следует проверить наличие регуляторов в конфигурационном файле ядра, а также убедиться, что загружены модули регуляторов.
Так называемые регуляторы (governors) являются схемами управления питанием. Они должны быть загружены как модули ядра, чтобы их видели такие программы как kpowersave и gnome-power-manager. Вы можете загрузить столько регуляторов, сколько захотите, но только один будет активен. Тем самым вы выберете подходящую для вас схему питания.
- Доступные регуляторы:
- performance, производительность (по умолчанию). Этот регулятор встроен в ядро и заставляет работать CPU с максимальной скоростью;
- cpufreq_ondemand. Динамически изменяет частоту процессора в зависимости от нагрузки на систему;
- cpufreq_conservative. Похоже на регулятор ondemand, разница лишь в плавном увеличении и уменьшении частоты процессора, что лучше для батареи;
- cpufreq_powersave. Выставляет минимальную частоту для процессора;
- cpufreq_userspace. Пользователь выставляет частоту вручную.
Подробное описание регуляторов
Регуляторы powersave и performance.
Эти регуляторы статически устанавливают тактовую частоту процессора на минимальное и на максимальное значение соответственно. Пользователь может изменить только те настройки, которые обсуждались в предыдущем разделе.
Регулятор userspace
Теперь мы приступаем к обсуждению настроек для конкретных регуляторов. При задействованном регуляторе userspace в каталоге cpufreq будет присутствовать файл scaling_setspeed , доступный на запись для root. Этот регулятор даёт пользователю или программе в пользовательском пространстве возможность изменять тактовую частоту процессора. С помощью команды echo пользователь может внести нужное значение частоты в этот файл или же представить возможность установить эту частоту какому-нибудь демону в пользовательском пространстве. Как говорилось ранее, во время обсуждения файлов настроек, вносить настройку в файл scaling_setspeed необходимо для каждого из процессоров.
С регулятором userspace взаимодействуют несколько демонов, которые могут настраивать частоту процессора. Например:
- cpufreqd: это демон можно настроить на реагирование на уровень заряда батареи, тип питания (от сети или от батареи), температуру, запущенные программы, уровень использования процессора и на другие факторы.
Регулятор 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
_ В разработке _