Difference between revisions of "CPU frequency scaling (Slovenský)"

From ArchWiki
Jump to: navigation, search
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
[[Category:Slovenský]]
 
[[Category:Slovenský]]
 +
[[ar:CPU Frequency Scaling]]
 
[[cs:CPU Frequency Scaling]]
 
[[cs:CPU Frequency Scaling]]
 
[[de:Cpufrequtils]]
 
[[de:Cpufrequtils]]
Line 11: Line 12:
 
[[tr:Işlemci_frekansını_ölçekleme]]
 
[[tr:Işlemci_frekansını_ölçekleme]]
 
[[zh-CN:CPU Frequency Scaling]]
 
[[zh-CN:CPU Frequency Scaling]]
{{Temporary i18n}}
 
 
{{Article summary start|Súhrn}} {{DISPLAYTITLE:cpufrequtils}}
 
{{Article summary start|Súhrn}} {{DISPLAYTITLE:cpufrequtils}}
 
{{Article summary text|Prehľad populárnych nástrojov pre kernel [http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufreq.html CPUfreq] subsystém.}}
 
{{Article summary text|Prehľad populárnych nástrojov pre kernel [http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufreq.html CPUfreq] subsystém.}}
Line 20: Line 20:
 
{{Article summary end}}
 
{{Article summary end}}
  
[http://www.archlinux.org/packages/?q=cpufrequtils cpufrequtils] je set utilít navrhnutý pre ''CPU frequency scaling'', technológiu využívanú primárne na notebook-och. Táto technológia umožňuje operačnému systému meniť frekvenciu CPU v závislosti na aktuálnom vyťažení systému.
+
[https://www.archlinux.org/packages/?q=cpufrequtils cpufrequtils] je set utilít navrhnutý pre ''CPU frequency scaling'', technológiu využívanú primárne na notebook-och. Táto technológia umožňuje operačnému systému meniť frekvenciu CPU v závislosti na aktuálnom vyťažení systému.
  
 
V spojení s [[Pm-utils|pm-utils]] poskytuje kompletný power managment.
 
V spojení s [[Pm-utils|pm-utils]] poskytuje kompletný power managment.

Revision as of 16:53, 4 June 2013

Súhrn help replacing me
Prehľad populárnych nástrojov pre kernel CPUfreq subsystém.
Súvisiace
Laptop Mode Tools
pm-utils
powernowd

cpufrequtils je set utilít navrhnutý pre CPU frequency scaling, technológiu využívanú primárne na notebook-och. Táto technológia umožňuje operačnému systému meniť frekvenciu CPU v závislosti na aktuálnom vyťažení systému.

V spojení s pm-utils poskytuje kompletný power managment.

Tento článok pokrýva inštaláciu a základnú konfiguráciu balíčka cpufrequtils.

Inštalácia

Balíček cpufrequtils je dostupný v repozitáry [extra]:

# pacman -S cpufrequtils

Konfigurácia

Konfigurácia zmeny frekvencie CPU pozostáva z 3 častí:

  1. Načítanie správneho ovládača
  2. Načítanie požadovaných tzv. governors
  3. Konfigurácia a načítanie daemona.

Ovládač frekvencie CPU

Aby Vám zmena frekvencie pracovala správne, operačný systém musí poznať limity CPU. Na splnenie tejto požiadavky sa načítavá modul kernelu, ktorý dokáže čítať a riadiť špecifikácie CPU.

Väčšina dnešných notebook-ov a PC môže používať ovládač acpi-cpufreq. Ďaľšími možnosťami sú ovládače p4-clockmod, powernow-k8 a speedstep-centrino. Aby ste videlikompletný zoznam dostupných ovládačov, spustite nasledovný príkaz:

$ ls /lib/modules/2.6.??-ARCH/kernel/drivers/cpufreq
Tip: Pre AMD "K10" CPU ako napr. Phenom X4, použite ovládač powernow-k8.

Intel

Manuálne načítanie ovládača:

# modprobe acpi-cpufreq

Ak máte starší procesor Intel, vyššie uvedený príkaz môže vrátiť:

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

V tomto prípade nahraďte kernel modul acpi-cpufreq s speedstep-centrino, p4-clockmod alebo speedstep-ich.

Modul speedstep-centrino je ale zastaraný.

V AUR-e sa náchdaza kernel s modulom speedstep-centrino. Je to balíček kernel26-pentium-m, ktorý nájdete tu.

AMD

# modprobe powernow-k8

Načítanie pri boot-e

Aby sa driver načítal automaticky pri štarte pridajte vhodný ovládač do riadku MODULES /etc/rc.conf. Príklad:

MODULES=( acpi-cpufreq vboxdrv fuse fglrx iwl3945 ... )

Keď je ovládač načítaný, detailné informácie o CPU môžete zobraziť príkazom:

$ cpufreq-info

Výstup príkazu by mal byť podobný tomuto:

$ cpufreq-info
 analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 0 1
  hardware limits: 1000 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 1.67 GHz, 1.33 GHz, 1000 MHz
  available cpufreq governors: ondemand, performance
  current policy: frequency should be within 1000 MHz and 2.00 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.00 GHz.
 analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 0 1
  hardware limits: 1000 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 1.67 GHz, 1.33 GHz, 1000 MHz
  available cpufreq governors: ondemand, performance
  current policy: frequency should be within 1000 MHz and 2.00 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.00 GHz.

Pre zobrazenie dostupných governors použijeme:

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

Monitorovanie frekvenice CPU v reálnom čase si zabezpečíme pomocou:

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

Pridelenie práv v Gnome

Gnome má pekný applet umožňujúci zmenu governor počas behu. Pre jeho použitie bez potreby zadávanie hesla pre root jednoducho vytvorte /var/lib/polkit-1/localauthority/50-local.d/org.gnome.cpufreqselector.pklaa vložte do neho nasledújúci text:

[org.gnome.cpufreqselector]
Identity=unix-user:USER
Action=org.gnome.cpufreqselector
ResultAny=no
ResultInactive=no
ResultActive=yes

Kde slovo USER nahradíte vašim používateľským menom.

Cpufrequtils a Laptop Mode Tools

Ak používate alebo plánujete používať Laptop Mode Tools možno ho budete chcieť nechať riadiť aj zmeny frekvencie CPU. V tomto prípade vložte acpi-cpufreq do riadku MODULES v /etc/rc.conf:

MODULES=(acpi-cpufreq)

A potom v /etc/laptop-mode/conf.d/cpufreq.conf definujte governors, frekvencie a politiky.

Ak používate laptop-mode-tools na riadenie cpufrequtils, potom nepotrebujete načítavať iné moduly a daemonov alebo nastavovať governors a interakcie s ACPI. Prosím prečítajte si Laptop Mode Tools, aby ste sa dozvedeli ako nainštalova a nakonfigurovať laptop-mode-tools.

Governors

Governors môžu byť myslené ako predkonfigurované schémy pre CPU. Tieto governors musia byť načítavané ako moduly kernelu, aby ich programy ako kpowersave alebo gnome-power-manager mohli využívať.

Dostupné governors:

cpufreq_performance (default)
CPU beží na maximálnej frekvencii. Režím je zabudovaný do kernelu.
cpufreq_ondemand (odporúčané)
Dynamicky mení frekvencie CPU na základe zaťaženia systému.
cpufreq_conservative
Podobné ondemand, ale viac konzervatívne.
cpufreq_powersave
CPU beží na minimálnej frekvencii.
cpufreq_userspace
Manuálne nastavené frekvencie užívateľom.

Načítanie požadovaného režimu sa robí pomocou modprobe. Napríklad:

# modprobe cpufreq_ondemand
# modprobe cpufreq_userspace

Alebo pridajte požadované režimy do riadku MODULES v /etc/rc.conf a reštartujte.

MODULES=(acpi-cpufreq cpufreq_ondemand cpufreq_powersave)

Manuálne môžete režim zmeniť pomocou príkazu cpufreq-set (ako root), ale toto nastavenie nebude uložené po reštarte alebo vypnutí. Napríklad:

# cpufreq-set -g ondemand

Tento príkaz nastaví režim iba pre prvý procesor. Ak máte viacjadrový alebo viacprocesorový systém, použite prepínač -c. Napr. pre nastavenie režimu pre štvrté jadro (jadrá sa číslujú od nuly):

# cpufreq-set -c 3 -g ondemand

Pre viac informácii spustite príkaz cpufreq-set --help alebo man cpufreq-set.

Pre tých, ktorý chcú GUI na zmenu governors alebo frekvencií môžu použiť trayfreq.

Zmena prahu ondemand režimu

Na zmenu toho, kedy sa režim ondemandprepne na vyšší stupeň môžete zmeniť /sys/devices/system/cpu/cpufreq/ondemand/up_threshold. Na zistenie aktuálnej hodnoty nastavenia zadajte nasledujúci príkaz ako root:

# cat /sys/devices/system/cpu/cpufreq/ondemand/up_threshold

Navrátená hodnota môže byť napr. 80 (default pri kerneli 2.6.31). To znamený, že režim ondemand zvýšši frelvenciu keď jadro CPU dosiahne 80% využitia. Môžeme to zmeniť napr. nasledovne:

echo "15" > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
Note: Minimálna hodnota musí byť aspoň o 1 vyššia ako je v down_treshold. Zadanie hodnoty pod túto hodnotu vyhodí chybovú hlášku "bash: echo: write error: Invalid argument"

Interakcia s ACPI

Používatelia si môžu nastaviť režimy tak, aby sa automaticky prepínali v závislosti na rozličných ACPI eventoch (napr. pripojenie AC adaptéra alebo zatvorenie krytu laptopu). Eventy sú definované v /etc/acpi/handler.sh. Ak je balíček acpidnainštalovaný, súbor pravdepodobne existuje a je spustiteľný. Napríklad, ak chcete zmeniť režim z performance na conservative pri odpojení AC adaptéra a zmeniť naspäť pri jeho zapojení zadáte do súboru:

/etc/acpi/handler.sh
[...]

 ac_adapter)
     case "$2" in
         AC*)
             case "$4" in
                 00000000)
                     echo "conservative" >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor    
                     echo -n $minspeed >$setspeed
                     #/etc/laptop-mode/laptop-mode start
                 ;;
                 00000001)
                     echo "performance" >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
                     echo -n $maxspeed >$setspeed
                     #/etc/laptop-mode/laptop-mode stop
                 ;;
             esac
         ;;
         *) logger "ACPI action undefined: $2" ;;
     esac
 ;;

[...]

Daemon

cpufrequtils obsahuje daemona, kotrý dovoľuje užívateľom nastaviť požadované režimy a min/max frekvencie pre všetky jadrá počas boot-u a bez potreby ďaľších nástrojov ako napr. kpowersave.

Pred spustením daemona editujte ako root /etc/conf.d/cpufreq a nastavte požadované hodnoty, napr:

/etc/conf.d/cpufreq
#configuration for cpufreq control

# valid governors:
#  ondemand, performance, powersave,
#  conservative, userspace
governor="ondemand"

# valid suffixes: Hz, kHz (default), MHz, GHz, THz
min_freq="1GHz"
max_freq="2GHz"
Note: Presné min/max hodnoty môžete zistiť pomocou cpufreq-info po načítaní ovládaču (napr. modprobe acpi-cpufreq). Tieto hodnoty sú voliteľné. Môžete ich vynechať vymazaním alebo zakomentovaním riadkov min/max. Zmeny budú potom automatické.

S požadovanou konfiguráciou následne spustíme daemona ako root pomocu:

# /etc/rc.d/cpufreq start

Pre automatické spúštanie daemona pri štarte pridajte cpufreq do riadku DAEMONS v /etc/rc.conf, napríklad:

DAEMONS=(syslog-ng networkmanager @alsa @crond @cupsd @cpufreq)

Možné problémy

  • Niektoré aplikácie ako napr. ntop neodpovedajú dobre na automatické zmeny frekvencie. V tomto prípade to môže viesť k segmentation fault.
  • Niektoré CPU môžu trpieť nízkym výkonom pri režime ondemand. Riešením je vypnutie zmien frekvencie alebo zvýšenie alebo zníženie up_treshold.
  • Niektoré CPU/BIOS konfigurácie môžu mať problém pri zmenách frekvencie na maximum alebo vo všeobecnosti pri zmenách frekvencie. nanešťastie momentálne existuje iba workaround. Pridajte processor.ignore_ppc=1" do kernel boot a/alebo zmente hodnotu v /sys/module/processor/parameters/ignore_ppc z 0 na 1.