Зміна частоти процесора
Динамічне масштабування частоти процесора (також відоме як регулювання частоти процесора) являє собою метод в комп’ютерній архітектурі, де процесор працює на частоті менш максимальної з метою економії електроенергії (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 і звукових карт можуть викликати заїкання звуку під час перемикання частот регулятором. Поки це можна вирішити тільки відключенням регулятора масштабування.
Якщо ця стаття допомогла вам, будь ласка, залиште коментар
Дякую за прочитання!
Arthur is a designer and full stack software engineer. He is the founder of Space X-Chimp and the blog My Cyber Universe. His personal website can be found at arthurgareginyan.com.