thumb

Динамічне масштабування частоти процесора (також відоме як регулювання частоти процесора) являє собою метод в комп’ютерній архітектурі, де процесор працює на частоті менш максимальної з метою економії електроенергії (src: Wikipedia).

Встановіть пакет cpufrequtils:

apt-get install cpufrequtils

Драйвер управління частотою процесора

Для коректного управління масштабуванням частотою, ОС перш за все повинна знати параметри вашого процесора(ів). Для цього потрібно завантажити модуль ядра, який може зчитувати і управляти параметрами вашого процесора(ів).

Для більшості сучасних ноутбуків і настільних комп’ютерів можна використовувати драйвер acpi-cpufreq, але є ще такі варіанти як p4-clockmod, powernow-k6, powernow-k7, powernow-k8, і speedstep-centrino.

Для завантаження драйвера вручну:

Intel

modprobe acpi-cpufreq

Для більш старих процесорів Intel, система може видати:

FATAL: Error inserting acpi_cpufreq ([...]/acpi-cpufreq.ko): No such device

У цій ситуації, замініть модуль ядра acpi_cpufreq на speedstep-centrino, p4-clockmod або speedstep-ich.

Примітка: Врахуйте, що модуль speedstep-centrino застарів, а модуль p4-clockmod підтримує тільки performance і powersave регулятори.

AMD

modprobe powernow-k8

Завантаження при старті системи

Для автоматичного завантаження драйвера під час старту системи, додайте відповідний драйвер в масив MODULES в файлі /etc/rc.conf. Наприклад:

MODULES=( acpi-cpufreq fuse iwl3945 )

Після завантаження правильного драйвера cpufreq, ви можете подивитися детальну інформацію про ваш процесор(и), виконавши:

cpufreq-info

Ось приклад виведення cpufreq-info на моєму ноутбуці:

cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq @ vger.kernel.org, please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 1.60 GHz
available frequency steps: 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
available cpufreq governors: userspace, conservative, powersave, ondemand, performance
current policy: frequency should be within 800 MHz and 1.60 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz (asserted by call to hardware).
cpufreq stats: 1.60 GHz:0.51%, 1.33 GHz:0.09%, 1.07 GHz:0.05%, 800 MHz:99.35%  (8)
analyzing CPU 1:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 1
CPUs which need to have their frequency coordinated by software: 1
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 1.60 GHz
available frequency steps: 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
available cpufreq governors: userspace, conservative, powersave, ondemand, performance
current policy: frequency should be within 800 MHz and 1.60 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz (asserted by call to hardware).
cpufreq stats: 1.60 GHz:1.99%, 1.33 GHz:0.00%, 1.07 GHz:0.00%, 800 MHz:98.01%  (12)

current policy - ondemand, означає те, що ця політика завантажена і активна.

У більшості випадків рекомендується використовувати саме ondemand.

current CPU frequency is XXXX MHz - якщо XXXX нижче максимальної частоти процесора то це означає, що управління частотою активно і працездатний.

Щоб переглянути список доступних регуляторів:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

Спостерігати за частотою процесора в режимі реального часу можна, виконавши команду:

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

Усунення несправностей

  • Деякі додатки, наприклад, ntop, може не працювати належним чином під час масштабування частоти. У випадку з ntop може статися сегментація або Ви можете втратити інформацію, так як регулятор ondemand не може досить швидко зреагувати на підвищення навантаження на процесор і підвищити частоту, а поточної частоти не вистачить для обробки всіх пакетів, які прийшли на мережевий інтерфейс.

  • Деякі моделі процесорів можуть не дуже добре працювати на стандартних налаштуваннях регулятора ondemand (наприклад, відео відтворюється з ривками або гальмує анімація вікон). Це можна вирішити, не тільки відключивши повністю масштабування частоти. Також можна збільшити “агресивність” перемикання частоти. Просто знизьте значення змінної up_threshold для кожного процесора. Див. зміна параметрів роботи регулятора ondemand.

  • Іноді демон задає не максимально частоту процесора, а частоту трохи менше (2.99МГц замість 3МГц). У цій ситуації задайте значення максимальної частоти трохи більше максимальної. Наприклад, якщо максимальна частота процесора 3МГц, задайте змінної max_freq значення 3.01МГц..

  • Деякі моделі BIOS зазнають труднощів з масштабуванням частот, та й з перемиканням на підвищені частоти. Правда, це можна обійти. Додайте рядок processor.ignore_ppc=1 в завантаження ядра або встановіть значення /sys/module/processor/parameters/ignore_ppc рівне 1.

  • Деякі комбінації драйверів ALSA і звукових карт можуть викликати заїкання звуку під час перемикання частот регулятором. Поки це можна вирішити тільки відключенням регулятора масштабування.