Cpufreq — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(создал по просьбе Михаила Шигорина)
 
 
(не показано 14 промежуточных версий 4 участников)
Строка 2: Строка 2:
  
 
Чтобы включить автоматическую регулировку частоты процессора
 
Чтобы включить автоматическую регулировку частоты процессора
надо поместить в /etc/modues следующую строку:
+
надо поместить в /etc/modules следующую строку:
  
 
  cpufreq_ondemand
 
  cpufreq_ondemand
  
Так же туда надо прописать подходящий модуль для вашего процессора. В
+
Так же туда надо прописать подходящий модуль для вашего процессора. Например,
моём случае это такие:
 
  
 
* для AMD Athlon 64 X2:
 
* для AMD Athlon 64 X2:
Строка 17: Строка 16:
 
Остальные варианты можно посмотреть [http://www.thinkwiki.org/wiki/How_to_make_use_of_Dynamic_Frequency_Scaling тут].
 
Остальные варианты можно посмотреть [http://www.thinkwiki.org/wiki/How_to_make_use_of_Dynamic_Frequency_Scaling тут].
  
На моём EeePC 1000H с Intel Atom пришлось ещё прописать в
+
Если всё сделано правильно, то после перезагрузки профиль ondemand должен присутствовать в числе возможных:
/etc/sysfs.conf следующие строки:
+
 
 +
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
 +
ondemand userspace performance
 +
 
 +
Он же должен быть текущим используемым профилем:
 +
 
 +
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
 +
ondemand
 +
 
 +
Если же всё равно используется профиль performance:
 +
 
 +
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
 +
performance
 +
 
 +
и частота процессора всегда максимальна в не зависимости от нагрузки, то необходимо прописать в {{path|/etc/sysfs.conf}} (необходимо предварительно установить {{pkg|sysfsutils}}) следующие строки (пример для процессора с двумя ядрами):
  
 
  devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand
 
  devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand
 
  devices/system/cpu/cpu1/cpufreq/scaling_governor = ondemand
 
  devices/system/cpu/cpu1/cpufreq/scaling_governor = ondemand
  
Иначе по умолчанию использовался профиль perfomance, и частота
+
По моим наблюдениям если в {{path|/etc/sysfs.conf}} после этих строк не поставить перевод строки то как минимум к последнему CPU политика не будет применяться.
процессора всегда была максимальной.
+
 
 +
===resume after suspend===
 +
[http://forum.altlinux.org/index.php/topic,12229.msg154855.html#msg154855 Говорят], sysfs не запускается при выходе из suspend. Поэтому надо позаботиться об установке этих параметров отдельно.
 +
 
 +
==Проверка частоты==
 +
Когда мы настраиваем регулировку частоты, интересно проверять, какая сейчас на самом деле частота.
 +
 
 +
Это умеют показывать всякие аплеты для power management для графических сред.
 +
 
 +
А как проверить частоту из командной строки, без графики?
  
На стационарном компе с AMD Athlon 64 X2 правки /etc/sysfs.conf не
+
Можно смотреть вот куда[http://forum.altlinux.org/index.php/topic,12229.msg152564.html?PHPSESSID=i1l2n59c7egv1a535lfj9cpur1#msg152564]:
потребовалось.
+
 
 +
  # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
 +
  1200000
 +
  # cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq
 +
  1200000
 +
  # cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
 +
  2600000 162981
 +
  2000000 2943
 +
  1600000 1833
 +
  1200000 506219
 +
 
 +
Или[https://wiki.archlinux.org/index.php/CPU_Frequency_Scaling#Scaling_governors]:
 +
 
 +
  $ watch grep \"cpu MHz\" /proc/cpuinfo
  
 
== Ссылки ==
 
== Ссылки ==
Строка 34: Строка 69:
 
* http://www.thinkwiki.org/wiki/How_to_make_use_of_Dynamic_Frequency_Scaling
 
* http://www.thinkwiki.org/wiki/How_to_make_use_of_Dynamic_Frequency_Scaling
  
[[Категория:HOWTO]]
+
==См. также. Другие близкие и нерешённые задачи==
 +
===Регулировка мощности по температуре, а не по загрузке (TODO)===
 +
* [[:en:How to keep the GPU (and CPU) cooler]] -- Среди прочего, там высказывается интерес к механизму управления мощностью центрального процессора, который бы регулировался текущей температурой, а не загрузкой (как в случае с обычными governors). Такой механизм работает в nouveau для GPU NVidia. Например, мне удобен режим ondemand, но также передо мной стоит задача не дать нагреться выше некой температуры. Я бы хотел указывать температуру, при нагревании до которой сбрасывается мощность. Всё время сидеть на powersave не хочется, конечно. (Если вам известно о таком механизме, опишите пожалуйста! Было бы полезно уметь это делать. Have a look at this, via [http://forum.altlinux.org/index.php/topic,30120.msg213519.html#msg213519]: "[https://wiki.archlinux.org/index.php/CPU_Frequency_Scaling Additional control for modern Intel CPUs is available with the Linux Thermal Daemon (available as thermald in the AUR), which proactively controls thermal using P-states, T-states, and the Intel power clamp driver.]" And what about AMD?)
 +
 
 +
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}
 +
[[Категория:Power Management]]

Текущая версия на 11:45, 19 июля 2015

Включение автоматической регулировки частоты процессора в зависимости от нагрузки без использования спецсервисов типа cpuspeed, powernowd, etc.[править]

Чтобы включить автоматическую регулировку частоты процессора надо поместить в /etc/modules следующую строку:

cpufreq_ondemand

Так же туда надо прописать подходящий модуль для вашего процессора. Например,

  • для AMD Athlon 64 X2:
powernow_k8
  • для Intel Atom N270:
acpi_cpufreq

Остальные варианты можно посмотреть тут.

Если всё сделано правильно, то после перезагрузки профиль ondemand должен присутствовать в числе возможных:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
ondemand userspace performance

Он же должен быть текущим используемым профилем:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand

Если же всё равно используется профиль performance:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance

и частота процессора всегда максимальна в не зависимости от нагрузки, то необходимо прописать в /etc/sysfs.conf (необходимо предварительно установить sysfsutils) следующие строки (пример для процессора с двумя ядрами):

devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand
devices/system/cpu/cpu1/cpufreq/scaling_governor = ondemand

По моим наблюдениям если в /etc/sysfs.conf после этих строк не поставить перевод строки то как минимум к последнему CPU политика не будет применяться.

resume after suspend[править]

Говорят, sysfs не запускается при выходе из suspend. Поэтому надо позаботиться об установке этих параметров отдельно.

Проверка частоты[править]

Когда мы настраиваем регулировку частоты, интересно проверять, какая сейчас на самом деле частота.

Это умеют показывать всякие аплеты для power management для графических сред.

А как проверить частоту из командной строки, без графики?

Можно смотреть вот куда[1]:

 # cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
 1200000
 # cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq
 1200000
 # cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
 2600000 162981
 2000000 2943
 1600000 1833
 1200000 506219

Или[2]:

 $ watch grep \"cpu MHz\" /proc/cpuinfo

Ссылки[править]

См. также. Другие близкие и нерешённые задачи[править]

Регулировка мощности по температуре, а не по загрузке (TODO)[править]

  • en:How to keep the GPU (and CPU) cooler -- Среди прочего, там высказывается интерес к механизму управления мощностью центрального процессора, который бы регулировался текущей температурой, а не загрузкой (как в случае с обычными governors). Такой механизм работает в nouveau для GPU NVidia. Например, мне удобен режим ondemand, но также передо мной стоит задача не дать нагреться выше некой температуры. Я бы хотел указывать температуру, при нагревании до которой сбрасывается мощность. Всё время сидеть на powersave не хочется, конечно. (Если вам известно о таком механизме, опишите пожалуйста! Было бы полезно уметь это делать. Have a look at this, via [3]: "Additional control for modern Intel CPUs is available with the Linux Thermal Daemon (available as thermald in the AUR), which proactively controls thermal using P-states, T-states, and the Intel power clamp driver." And what about AMD?)