Cpufreq
Включение автоматической регулировки частоты процессора в зависимости от нагрузки без использования спецсервисов типа 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 политика не будет применяться.
Ссылки
- 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 не хочется, конечно. (Если вам известно о таком механизме, опишите пожалуйста! Было бы полезно уметь это делать.)