Cpufreq: различия между версиями
(→Ссылки: А как проверить частоту из командной строки, без графики?) |
(→Проверка частоты: где найти эти данные) |
||
Строка 44: | Строка 44: | ||
А как проверить частоту из командной строки, без графики? | А как проверить частоту из командной строки, без графики? | ||
Можно смотреть вот куда[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 | |||
== Ссылки == | == Ссылки == |
Версия от 22:39, 5 января 2014
Включение автоматической регулировки частоты процессора в зависимости от нагрузки без использования спецсервисов типа 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 политика не будет применяться.
Проверка частоты
Когда мы настраиваем регулировку частоты, интересно проверять, какая сейчас на самом деле частота.
Это умеют показывать всякие аплеты для 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
Ссылки
- http://lists.altlinux.org/pipermail/community/2010-August/665835.html
- http://www.thinkwiki.org/wiki/How_to_make_use_of_Dynamic_Frequency_Scaling
См. также. Другие близкие и нерешённые задачи
Регулировка мощности по температуре, а не по загрузке (TODO)
- en:How to keep the GPU (and CPU) cooler -- Среди прочего, там высказывается интерес к механизму управления мощностью центрального процессора, который бы регулировался текущей температурой, а не загрузкой (как в случае с обычными governors). Такой механизм работает в nouveau для GPU NVidia. Например, мне удобен режим ondemand, но также передо мной стоит задача не дать нагреться выше некой температуры. Я бы хотел указывать температуру, при нагревании до которой сбрасывается мощность. Всё время сидеть на powersave не хочется, конечно. (Если вам известно о таком механизме, опишите пожалуйста! Было бы полезно уметь это делать.)