Difference between revisions of "CPU frequency scaling (Italiano)"

From ArchWiki
Jump to: navigation, search
(Laptop Mode Tools: paragrafo tradotto)
m (pagina allineata)
(47 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
[[Category:Power management  (Italiano)]]
 
[[Category:Power management  (Italiano)]]
 
[[Category:CPU (Italiano)]]
 
[[Category:CPU (Italiano)]]
[[Category:Daemons and system services (Italiano)]]
+
[[ar:CPU Frequency Scaling]]
{{out of date}}
+
[[cs:CPU Frequency Scaling]]
{{Warning|Questa pagina è in fase di revisione e potrebbe non essere aggiornata. Seguite per ora le istruzioni della versione inglese.}}
+
[[de:Cpufrequtils]]
 +
[[el:CPU Frequency Scaling]]
 +
[[en:CPU Frequency Scaling]]
 +
[[es:CPU Frequency Scaling]]
 +
[[fr:Cpufreq]]
 +
[[pt:CPU Frequency Scaling]]
 +
[[ru:CPU Frequency Scaling]]
 +
[[sk:CPU Frequency Scaling]]
 +
[[tr:Işlemci_frekansını_ölçekleme]]
 +
[[zh-CN:CPU Frequency Scaling]]
 +
{{Article summary start|Sommario}}
 +
{{Article summary text|Una panoramica sul popolare strumento userspace  per il sottosistema [http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufreq-info.html CPUfreq] del kernel.}}
 +
{{Article summary heading|Articoli Correlati}}
 +
{{Article summary text|[[Laptop Mode Tools (Italiano)|Laptop Mode Tools]] <br> [[pm-utils (Italiano)|pm-utils]] <br> [[PHC]]}}
 +
{{Article summary end}}
  
{{i18n|CPU Frequency Scaling}}
+
Cpufreq si riferisce l'infrastruttura del kernel che implementa la variazione della frequenza della CPU. Questa tecnologia consente al sistema operativo di scalare la velocità della CPU verso l'alto o verso il basso in modo da risparmiare energia. Le frequenze della CPU possono essere scalati automaticamente a seconda del carico del sistema, in risposta agli eventi ACPI, o manualmente da programmi userspace.  Gestori della variazione
  
'''La variazionde della frequenza della CPU''' è una tecnologia rivolta principalmente ai notebook che consente al sistema operativo di variare la velocità di funzionamento della CPU in base al sistema ed al consumo di energia. Per esempio, rallentando la CPU quando un notebook è alimentato dalla batteria, preserva la durata della batteria stessa. Intel definisce questa tecnologia SpeedStep. L'equivalente tecnologia di AMD è detta PowerNow! o Cool'n'Quiet.
+
Dalla versione del kernel 3.4 i moduli necessari sono caricati automaticamente e il governatore raccomandato [[CPU Frequency Scaling (Italiano)#Gestori della variazione|ondemand]] è abilitato in maniera predefinita. Tuttavia le applicazioni a livello utente come {{Pkg|cpupower}}, [[acpid (Italiano)|acpid]] , [[Laptop Mode Tools (Italiano)|laptop-mode-tools]] o le GUI fornite dagli ambienti desktop possono essere ancora utilizzati per la configurazione avanzata.
  
 +
== tool userspace (cpupower) ==
  
cpufreq si riferisce l'infrastruttura del kernel che implementa la variazione della frequenza della CPU. Questa tecnologia consente al sistema operativo di scalare la velocità della CPU verso l'alto o verso il basso in modo da risparmiare energia. Le frequenze della CPU possono essere scalati automaticamente a seconda del carico del sistema, in risposta agli eventi ACPI, o manualmente da programmi userspace.  
+
{{Pkg|cpupower}} è un insieme di utility in userspace che contribuire ad assicurare ''lo scaling della frequenza della CPU''. Il pacchetto non è richiesto per l'uso dello scaling, ma è altamente consigliato in quanto fornisce utility a riga di comando e uno servizio per cambiare il governatore all'avvio.
  
Come minimo, i moduli del kernel necessari devono essere caricati e poi deve essere impostato un governatore . Configurazioni più avanzate possono includere una combinazione di [[CPU Frequency Scaling (Italiano)#cpufrequtils |cpufrequtils]], [[acpid (Italiano)|acpid]] , [[Laptop Mode Tools (Italiano)|laptop-mode-tools]] e strumenti grafici forniti per l'ambiente desktop.
+
Il file di configurazione di {{Pkg|cpupower}} è situato in {{ic|/etc/default/cpupower}}. Questo file di configurazione viene letto da script bash situati in {{ic|/usr/lib/systemd/scripts/cpupower}}, i quali vengono attivati da {{ic|systemd}} tramite {{ic|cpupower.service}}. Si consiglia di abilitare ''cpupower'' all'avvio tramite [[systemd (Italiano)|systemd]].
  
==cpufrequtils==
+
Un front-end per GNOME Shell è disponibile utilizzando [https://extensions.gnome.org/extension/444/cpu-freq/ CPU Freq].
{{Package Official|cpufrequtils}} è un insieme di utility in userspace progettate per supportare la variazione di frequenza della CPU. Il pacchetto non è necessario per effettuare il ridimensionamento, ma è altamente consigliato in quanto fornisce strumenti a riga di comando e uno script per impostare il demone governatore all'avvio (si veda [[#Demone| demone]] ).
+
 
+
Il pacchetto {{Package Official|cpufrequtils}} è reperibile nel repository [extra]:
+
# pacman -S cpufrequtils
+
 
+
==Configurazione==
+
Il processo di configurazione della variazione di frequenza della CPU è suddivisa in tre fasi:
+
# Caricare il driver appropriato in grado di gestire la frequenza della CPU
+
# Caricare il governatore/i desiderati per lo scaling CPU
+
# Selezionare un metodo per gestire il cambiamento e la messa a punti dei governatori:
+
#* Manualmente attraverso l'interfaccia /sys o cpufreq-set (da cpufrequtils),
+
#* Tramite il [[#Daemon|demone]] cpufrequtils ,
+
#* [[Laptop Mode Tools (Italiano)|Laptop Mode Tools]],
+
#* Eventi[[acpid (Italiano)|acpid]],
+
#* Applets/utility del proprio ambiente desktop,
+
#* o una combinazione dei questi.
+
  
 
=== Driver per la frequenza della CPU ===
 
=== Driver per la frequenza della CPU ===
  
Al fine che la variazione di frequenza funzioni correttamente, il sistema operativo deve prima conoscere i limiti della/e CPU. Per fare questo, un modulo del kernel è caricato in grado di leggere e gestire le specifiche della/e CPU. Si noti che questi moduli possono esigere di funzioni correlate abilitate nel BIOS, che possono essere etichettati come: ''Speedstep'', ''Cool and Quiet'', ''PowerNow!'', o ''ACPI''.  
+
* Dalla versione 3.4 del kernel, i moduli nativi della CPU sono caricati automaticamente.
Se avete un processore a 64 bit, è molto probabile che il driver appropriato sia '''{{Codeline|acpi-cpufreq}}''' per processori Intel o '''{{Codeline|powernow-k8}}''' per processori AMD K8/K10 (Athlon 64, Opteron e Phenom). Questi moduli sono costruiti per il kernel 32 e 64-bit kernel, anche se si esegue un kernel a 32 bit sul proprio hardware a 64 bit sono probabilmente ancora quelli i driver necessari.  
+
* A partire dal kernel 3.9, il nuovo driver {{ic|pstate}} per lo scaling di potenza viene usato automaticamente per le moderne CPU Intel al posto degli altri driver elencati sotto. Questo driver ha la priorità su tutti gli altri, e infatti è all'interno del kernel invece di essere un modulo da caricare. Questo driver è attualmente utilizzato automaticamente per tutti i tipi di CPU Sandy Bridge e Ivy Bridge. Se si verifica un problema durante l'utilizzo di questo driver, aggiungere {{ic|intel_pstate&#61;disable}} alla linea del kernel. É possibile utilizzare le solite utility in userpace con questo driver, ma non possono controllarne l'utilizzo.
Per vedere una lista completa dei driver disponibili, eseguire il seguente comando:
+
* Anche il comportamento di P State, menzionato sopra, può essere influenzato con {{ic|/sys/devices/system/cpu/intel_pstate}}, ad esempio, Intel Turbo Boost può essere disattivato con {{ic|# echo 1> /sys/devices/system/cpu/intel_pstate/no_turbo}} per mantenere basse le temperature delle CPU.
 +
 
 +
{{Pkg|cpupower}} necessita di moduli (vedi tabella sotto) per conoscere i limiti della cpu nativa. Per visualizzare un elenco completo dei moduli disponibili , eseguire:
  
 
  $ ls /lib/modules/$(uname -r)/kernel/drivers/cpufreq/
 
  $ ls /lib/modules/$(uname -r)/kernel/drivers/cpufreq/
  
La seguente tabella contiene una lista parzioale dei driver disponibili per la gestione della frequenza (Adattato dal file sorgente del kernel  {{filename|&lt;kernel source&gt;/arch/x86/kernel/cpu/cpufreq/Kconfig}}).
+
{{Suggerimento|Per caricare un modulo al boot, eseguire :
 +
# echo ''modulo'' >/etc/modules-load.d/''modulo''.conf
 +
}}
 +
 
 +
{{Nota|Il caricamento del modulo errato si tradurrà in un errore "No such device"}}
 +
Caricare il modulo appropriato con
 +
 
 +
# modprobe ''modulo''
 +
 
 
{| border="1"
 
{| border="1"
 
!Module!!Description
 
!Module!!Description
Line 46: Line 55:
 
| acpi-cpufreq  || CPUFreq driver che utilizza le ACPI Processor Performance States. Questo driver supporta anche i processori Intel Enhanced Speedstep (precedentemente supportato dal deprecato modulo speedstep-centrino).
 
| acpi-cpufreq  || CPUFreq driver che utilizza le ACPI Processor Performance States. Questo driver supporta anche i processori Intel Enhanced Speedstep (precedentemente supportato dal deprecato modulo speedstep-centrino).
 
|-
 
|-
| speedstep-ich || CPUFreq driver per alcuni processori per laptop Intel Pentium III (Coppermine), tutti i processori Intel mobile Pentium III-M (Tualatin), Pentium 4 P4-M su sistemi che hanno un southbridge Intel ICH2, ICH3 or ICH4 .
+
| speedstep-lib || CPUFreq driver per processori Intel che abilita lo SpeedStep (per lo più Atom e vecchi Pentium (<3)).
 
|-
 
|-
| speedstep-smi || CPUFreq driver per alcuni processori per laptop Intel Pentium III (Coppermine), tutti i processori Intel mobile Pentium III-M (Tualatin) su sistemi che hanno un southbridge Intel 440BX/ZX/MX .
+
| powernow-k8  || CPUFreq driver processori K8/K10 Athlon64/Opteron/Phenom. '''Deprecato dalla versione linux 3.7 - Utilizzare acpi_cpufreq.'''
|-
+
| powernow-k8  || CPUFreq driver processori K8/K10 Athlon64/Opteron/Phenom.
+
|-
+
| powernow-k7  || CPUFreq driver processori AMD K7 mobile.  
+
|-
+
| cpufreq-nforce2 || CPUFreq driver per il cambiamento dell' FSB su piattaforme nForce2. (AMD K7, Socket A)
+
 
|-
 
|-
 
| pcc-cpufreq  || Questo driver supporta l'interfaccia di controllo della frequenza di Clock dei processori da Hewlett-Packard e Microsoft Corporation, che è utile in alcuni server Proliant.
 
| pcc-cpufreq  || Questo driver supporta l'interfaccia di controllo della frequenza di Clock dei processori da Hewlett-Packard e Microsoft Corporation, che è utile in alcuni server Proliant.
 
|-
 
|-
| p4-clockmod   || CPUFreq driver processori Intel Pentium 4/XEON.  Quando è abilitato lo abbasserà soltanto la temperatura della CPU saltando la frequenza di clocks. <br>Probabilmente si preferisce usare un driver Speedstep al suo posto.
+
| p4_clockmod   || CPUFreq driver processori Intel Pentium 4/XEON/Celeron.  Quando è abilitato lo abbasserà soltanto la temperatura della CPU saltando la frequenza di clocks. <br>Probabilmente si preferisce usare un driver Speedstep al suo posto.
 
|}
 
|}
<br>
 
per caricare un driver per la gestione della CPU manualmente eseguire:
 
# modprobe acpi-cpufreq
 
Si noti che se si tenta di caricare il modulo sbagliato avrete un errore, simile a questo:
 
FATAL: Error inserting acpi_cpufreq ([...]/acpi-cpufreq.ko): No such device
 
  
 
Una volta che avete caricato il driver appropriato per la gestione della frequenza della CPU, potrete ottenere delle informazioni dettagliate lanciando il seguente comando:  
 
Una volta che avete caricato il driver appropriato per la gestione della frequenza della CPU, potrete ottenere delle informazioni dettagliate lanciando il seguente comando:  
{{Command
 
|name=cpufreq-info
 
|output=<nowiki>
 
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.
 
</nowiki>}}
 
  
Per caricare in modo automatico all'avvio del sistema il driver, aggiungere il modulo appropriato nella stringa MODULES nel faile {{Filename|/etc/rc.conf}}. Ad esempio:
+
  $ cpupower frequency-info
  MODULES=('''acpi-cpufreq''')
+
  
 
=== Gestori della variazione ===
 
=== Gestori della variazione ===
  
I gestori della variazione (Governar) possono esser visti come schemi pre-configurati di alimentazione per la CPU. Questi governatori devono essere caricati come moduli del kernel in modo da essere visti da programmi in user space. Si possono caricare più gestori della variazione (solo uno sarà attivo su una CPU in un dato momento).
+
I gestori della variazione (Governor - vedi tabella sotto) sono gli schemi di alimentazione per la CPU. Può essere attivo solo un governatore alla volta. Per maggiori dettagli si veda la [https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt documentazione ufficiale] nei sorgenti del kernel.
  
Gestori della variazione disponibili:
+
{{nota|Il kernel caricherà il governor {{ic|on_demand}} per impostazione predefinita.}}
  
;{{Codeline|cpufreq_performance}} ''(predefinito)'': Il gestore performance è integrato nel kernel e fa funzionare le CPU(s) alla velocità massima di clock
+
{| border="1"
;{{Codeline|cpufreq_ondemand}} ''(raccomandato)'': Questo gestore passa dinamicamente tra le varie velocità di clock disponibili per le CPU(s) in base al carico di sistema.
+
!Modulo!!Descrizione
;{{Codeline|cpufreq_conservative}}: Simile a {{Codeline|ondemand}}, ma in questo caso passa gradualmente tra le varie velocità di clock disponibili per le CPU(s) in base al carico di sistema.
+
|-
;{{Codeline|cpufreq_powersave}}: Fa funzionare le CPU(s) alla velocità minima di Clock.
+
|cpufreq_ondemand||Passa dinamicamente tra le varie frequenze disponibili per le CPU(s) se il carico della cpu raggiunge il 95%
;{{Codeline|cpufreq_userspace}}: Configurazione manuale della velocità di Clock stabilita dall'utente.
+
|-
 
+
|cpufreq_performance||Fa funzionare le CPU(s) alla frequenza massima
Per la maggior parte dei sistemi desktop, il governatore ondemand è in grado di fornire il miglior compromesso tra emissione di calore, il consumo di potenza, prestazioni e gestibilità. Per i portatili o altri sistemi mobili, il governatore conservatore può eventualmente fornire un notevole risparmio nel consumo di energia.
+
|-
 
+
|cpufreq_conservative||Passa gradualmente tra le varie frequenze disponibili per le CPU(s) se il carico della cpu raggiunge il 75%
Caricare il gestore/i desiderati con il comando {{Codeline|modprobe}}. Ad esempio:
+
|-
# modprobe cpufreq_ondemand
+
|cpufreq_powersave||Fa funzionare le CPU(s) alla frequenza minima
# modprobe cpufreq_userspace
+
|-
 
+
|cpufreq_userspace||Fa funzionare le CPU(s) alla frequenza specificata dall'utente
In alternativa, aggiungere i gestori desiderati nela stringa MODULES in {{Filename|/etc/rc.conf}} e riavviare il sistema.
+
|}
MODULES=(acpi-cpufreq '''cpufreq_ondemand''' '''cpufreq_powersave''')
+
 
+
Per controllare quali sono i gestori di variazione caricati, eseguire:
+
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
+
 
+
Manualmente un gestore di variazione può essere eseguito con il comando {{Codeline|cpufreq-set}} da root. Ad esempio:
+
# cpufreq-set -c 0 -g ondemand
+
 
+
Si noti che il comando precedente imposta un gestore solamente per il ''primo'' procesore!  Per un sistema multiprocessore, o un processore multicore richiedono l'opzione {{codeline|-c}} per impostare il gestore su uno specifico core e ripeterlo per i rimanenti.  La numerazione inizia da 0 non da 1!
+
 
+
Per una CPU quad core:
+
# for i in 0 1 2 3; do cpufreq-set -c $i -g ondemand; done
+
 
+
Per una CPU dual core:
+
# for i in 0 1; do cpufreq-set -c $i -g ondemand; done
+
+
{{Note|Queste impostazioni non vengono preservate dopo un riavvio o spegnimento del sistema. Si veda il paragrafo seguente sul [[#Demone|demone]] per poter configurare i governatori di cpufreq all'avvio.}}
+
 
+
Ulteriori opzioni come ad esempio limiti di frequenza massima e minima utilizzato dal governatore può essere impostato utilizzando l'opzione {{codeline|-u}} e{{codeline|-d}}. Le frequenze valide disponibili possono essere consultate con il comando {{codeline|cpufreq-info}}. Ad esempio, per impostare la frequenza massima del secondo core a 2.00GHz e il suo limite inferiore a 1.00Ghz:
+
 
+
# cpufreq-set -c 1 -g ondemand -u 2.00Ghz -d 1.00Ghz
+
 
+
Si possono impostare manualmente le frequenze di utilizzo di un processore tramite il gestore ''userspace''.  Per esempio per impostare il core 0 a 2.50Ghz e il core 1 a 800Mhz:
+
 
+
# cpufreq-set -c 0 -g userspace -f 2.50Ghz
+
# cpufreq-set -c 1 -g userspace -f 800Mhz
+
 
+
Eseguire {{Codeline|cpufreq-set --help}} o {{Codeline|man cpufreq-set}} per maggiori informazioni.
+
 
+
Per coloro che desiderano avere una interfaccia grafica per impostare i vari governatori, o la frequenza di esercizio, è presente [[trayfreq (Italiano)|trayfreq]], una applicazione GTK+ che si trova nella barra delle applicazioni.
+
  
Il monitoraggio della velocità di clock di una CPU in tempo reale si ottiene eseguendo:
+
{{Suggerimento|Per monitorare la velocità della Cpi in tempo reale, eseguire:
 
  $ watch grep \"cpu MHz\" /proc/cpuinfo
 
  $ watch grep \"cpu MHz\" /proc/cpuinfo
 +
}}
  
====Migliorare le prestazioni di 'ondemand' ====
+
==== Con cpupower ====
  
Con la configurazione predefinita, il governatore ondemand si tradurrà in una perdita lieve ma misurabile e visibile delle prestazioni. Non alzerà il clock della CPU quando è inferiore al 95% di utilizzo, e ad esempio utilizzerà la frequenza più alta possibile quando la velocità di clock sarà massima, al fine di riportare la velocità di clock il più presto possibile in basso.
+
Per caricare e attivare un governatore particolare , si dovrebbe eseguire:
  
Mettere a punto il governatore per le vostre esigenze può ridurre la perdita di prestazioni fino al punto in cui è trascurabile e/o inesistente se si è disposti a perdere un sacco di risparmio energetico. Se si vuole solo risparmiare energia in idle, abbassare il ''up_threshold'' al 11% e aumentare la ''sample_down_factor'' di un ordine di grandezza può realizzare aiutare in questo senso.
+
# cpupower frequency-set -g ''governor_senza_cpufreq''
  
Parametri di miglioramento sono disponibili in {{filename|/sys/devices/system/cpu/cpufreq/ondemand/}} una volta che il governatore viene caricato e selezionato, e può essere impostato per essere utilizzabile al riavvio {{Filename|/etc/rc.local}}.
+
==== Senza cpupower ====
  
Avviare il demone cpufreq in background (cioè con un '@' davanti in {{Filename|rc.conf}}) probabilmente causerà la lettura di {{Filename|rc.local}} prima che il demone cpufreq abbia la possibilità di cambiare il governatore. Assicurarsi che lo script demone cpufreq abbia terminato l'esecuzione prima dei i parametri impostati. esempio:
+
{{Suggerimento|Per caricare un governatore in fase di avvio, eseguire
 +
# echo ''modulo'' > /etc/modules-load.d/''modulo''
 +
}}
  
{{File|/etc/rc.local|content=(sleep 10 && echo -n 25 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold) &}}
+
Per caricare un governatore particolare , si dovrebbe eseguire:
  
=====Modifica della soglia (threshold) del governatore 'ondemand'=====
+
# modprobe ''governor''
  
Per impostare quando il governatore {{Codeline|ondemand}} passa ad un moltiplicatore più alto, si può manipolare il valore di {{Filename|/sys/devices/system/cpu/cpufreq/ondemand/up_threshold}}. Determinare l'impostazione corrente eseguendo il seguente comando come root:
+
=== Ottimizzare i governatori ===
  
# cat /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
+
Per impostare la soglia massima per passare ad un'altra frequenza
  
Il valore restituito dovrebbe essere {{Codeline|95}}, ovvero l'impostazione predefinita della versione del Kernel 3.0. Ciò significa che il governatore {{Codeline|ondemand}} aumenta la frequenza di clock se un Core raggiunge il 95% di utilizzo. Questo valore può essere cambiato, ad esempio:
+
# echo -n ''percent'' > /sys/devices/system/cpu/cpufreq/''governor''/up_threshold
  
# echo -n 15 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
+
Per impostare la soglia mionima per passare ad un'altra frequenza
  
=====Modificare il sampling-down-factor del governatore ondemand=====
+
# echo -n ''percent'' > /sys/devices/system/cpu/cpufreq/''governor''/down_threshold
  
sampling_down_factor è un altro parametro globale che si può impostare in ondemand.
+
===== Sampling rate (Frequenza di campionamento) =====
  
Impostare a 1 non genera nessuna modifica nel comportamento esistente, ma renderlo maggiore ad 1 (es. 100) agisce come un moltiplicatore per l'intervallo di pianificazione nel rivalutamento del carico, quando la CPU è alla sua velocità massima a causa di carico elevato. Questo migliora le prestazioni riducendo il sovraccarico di valutazione del carico e aiuta la CPU a rimanere alla massima velocità quando è veramente occupato, piuttosto che spostarsi avanti e indietro in termini di velocità. Questo parametro impostabile non ha alcun effetto sul comportamento alle basse velocità e a bassi carichi della CPU.
+
Il Sampling rate determina l'intervallo con cui il governatore effettua un controllo per regolare la frequenza della cpu.
 +
Impostare il {{ic|sampling_down_factor}} maggiore di 1 migliora le prestazioni riducendo l'overhead di valutazione del carico e mantiene la CPU alla frequenza massima di clock a causa del carico elevato. Questo parametro non ha alcun effetto sul comportamento a frequenze/carichi inferiori della CPU.
  
Rilevare il valore attuale (predefinito: 1):
+
Per leggere l'attuale valore (default=1), eseguire:
# cat /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
+
  
Impostare un valore:
+
$ cat /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  
# echo -n 10 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
+
Per impostare un valore, eseguire:
  
====Migliorare le prestazioni di 'conservative'====
+
# echo -n ''valore'' > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  
Nonostante il governatore 'conservative' passa senza problemi e utilizza tutte le frequenze disponibili, gli utenti potrebbero volerlo ottimizzare ulteriormente. Come impostazione predefinita varierà verso l'alto la velocità di clock della CPU quando il carico raggiunge il 75% e e la varierà verso il basso quando il carico scende al 20%. Come per il governatore ondemand, diminuendo il parametro {{Codeline|up_threshold}} si può migliorare in prestazioni e reattività.
+
=== Impostrare una frequenza Massima e Minima ===
  
Parametri di miglioramento sono disponibili in {{filename|/sys/devices/system/cpu/cpufreq/conservative/}}. Fare riferimento alla sezione [[#Migliorare le prestazioni di 'ondemand'|ondemand ]] per un consiglio importante per come rendere queste modifiche permanenti, e i potenziali problemi con il caricamento del demone all'avvio del sistema.
+
{{Nota|La frequenza massima e minima di un governatore può essere impostato in {{ic|/etc/default/cpupower}}. Per regolare un singolo core della cpu : {{ic| -c ''core #''}}. Dove ''clock_freq'' è la frequenza di clock, espressa in GHz,MHz.}}
  
=====Modifica della soglia (threshold) del governatore 'conservative'=====
+
Per impostare la frequenza massima di clock:
  
Determinare l'impostazione corrente {{codeline|up_threshold}} eseguendo il seguente comando come root:
+
# cpupower frequency-set -u ''clock_freq''
  
# cat /sys/devices/system/cpu/cpufreq/conservative/up_threshold
+
Per impostare la frequenza minima di clocl:
  
Il valore restituito dovrebbe essere {{Codeline|75}}, ovvero l'impostazione predefinita della versione del Kernel 3.0. Ciò significa che il governatore {{codeline|conservative}} aumenta la frequenza di clock se un Core raggiunge il 75% di utilizzo. Questo valore può essere cambiato, ad esempio:
+
# cpupower frequency-set -d ''clock_freq''
  
# echo -n 40 > /sys/devices/system/cpu/cpufreq/conservative/up_threshold
+
Per impostare il processore ad una determinata frequenza:
  
{{Note|il valore minimo che si imposta deve essere superiore a quella del valore di in {{Codeline|down_threshold}}, immettere un valore inferiore ad esso genera l'errore, "bash: echo: write error: Invalid argument"}}
+
# cpupower frequency-set -f ''clock_freq''
  
Allo stesso modo il valore {{Codeline|down_threshold}} può essere letto e modificato tramite {{filename|/sys/devices/system/cpu/cpufreq/conservative/down_threshold}}. Il valore di predefinito dovrebbe essere {{Codeline|20}} nella versione 3.0 del kernel. Ciò significa che il governatore {{Codeline|conservative}} diminuisce la frequenza di clock alla velocità più bassa successiva se un core scende al 20% di utilizzo, che è un valore ragionevole.
+
== Interazione con gli eventi ACPI ==
 
+
Sebbene la frequenza di campionamento può essere regolata verso il basso per il governatore {{Codeline|conservative}}, l'aumento di questo valore può solo aiutare con picchi di utilizzo occasionalmente bassi della CPU durante l'utilizzo di più applicazioni, il {{Codeline|down_threshold}} è un controllo molto più diretto per il ridimensionamento che non esiste sul governatore {{Codeline|ondemand}}.
+
 
+
Bisogna essere consapevoli del fatto che l'impostazione {{Codeline|down_threshold}} troppo vicino al {{Codeline|up_threshold}} può causare la costante variazione delle frequenze della CPU, che potrebbe essere qualcosa di desiderabile per alcuni utenti e ma non per altri. Impostare valori di {{Codeline|down_threshold}} o {{Codeline|up_threshold}} troppo bassi può portare all'uso di frequenze di clock della CPU superiori a quelle di cui ha bisogno, sacrificando il risparmio energetico a favore delle prestazioni, un valore di {{Codeline|up_threshold} troppo alta può causare una riduzione delle prestazioni, ma consumi ridotti. Bisogna sperimentare per trovare i valori ottimali per il sistema e le vostre esigenze.
+
 
+
==== Interazione con gli eventi ACPI ====
+
  
 
Gli utenti possono configurare i gestori della variazione in modo tale che varino automaticamente in base agli eventi ACPI, come il collegamento all'adattatore di corrente o la chiusura di un coperchio del portatile. Un esempio veloce è riportata qui sotto, ma si consiglia la lettura dell'articolo completo su [[acpid (Italiano)|acpid]].
 
Gli utenti possono configurare i gestori della variazione in modo tale che varino automaticamente in base agli eventi ACPI, come il collegamento all'adattatore di corrente o la chiusura di un coperchio del portatile. Un esempio veloce è riportata qui sotto, ma si consiglia la lettura dell'articolo completo su [[acpid (Italiano)|acpid]].
  
Gli eventi sono definiti in {{Filename|/etc/acpi/handler.sh}}. Se il pacchetto {{Package Official|acpid}} è installato, il file deve già esistere ed essere eseguibile. Ad esempio, per cambiare il governatore da {{Codeline|performance}} a {{Codeline|conservative}} quando l'adattatore CA viene scollegato, e viceversa se ricollegata:
+
Gli eventi sono definiti in {{ic|/etc/acpi/handler.sh}}. Se il pacchetto {{Pkg|acpid}} è installato, il file deve già esistere ed essere eseguibile. Ad esempio, per cambiare il governatore da {{ic|performance}} a {{ic|conservative}} quando l'adattatore CA viene scollegato, e viceversa se ricollegata:
  
{{File
+
{{hc|/etc/acpi/handler.sh|<nowiki>
|name=/etc/acpi/handler.sh
+
|content=<nowiki>
+
 
[...]
 
[...]
  
Line 241: Line 179:
 
</nowiki>}}
 
</nowiki>}}
  
=== Demone ===
+
== Concessione dei privilegi sotto Gnome ==
{{Codeline|cpufrequtils}} include un demone che permette agli utenti di impostare il gestore della variazione di frequenza desiderato e velocità minima/massima di clock per tutti i core del processore in fase di avvio.
+
  
Prima di avviare il demone, modificare il file {{Filename|/etc/conf.d/cpufreq}} come root, selezionando il governatore desiderato e impostare il valore min/max della velocità per le CPU(s), ad esempio:
+
{{nota|Systemd ha introdotto logind, che gestisce le azioni consolekit e policykit. di conseguenza il seguente codice qui sotto non funziona. Con logind, si editi semplicemente nel file {{ic|/usr/share/polkit-1/actions/org.gnome.cpufreqselector.policy}} la voce ''defaults'' con ciò che si necessita, in base alle direttive del manuale di polkit [http://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html]}}
  
{{File
+
[[Gnome (Italiano)|GNOME]] include un gradevole applet per cambiare il governatore al volo. Per usarlo senza la necessità di inserire la password di root bisogna creare il file {{ic|/var/lib/polkit-1/localauthority/50-local.d/org.gnome.cpufreqselector.pkla}} e immettere le seguenti stringhe:
|name=/etc/conf.d/cpufreq
+
|content=<nowiki>
+
#configuration for cpufreq control
+
  
# valid governors:
+
{{bc|[org.gnome.cpufreqselector]
# ondemand, performance, powersave,
+
Identity&#61;unix-user:''utente''
# conservative, userspace
+
Action&#61;org.gnome.cpufreqselector
governor="ondemand"
+
ResultAny&#61;no
 +
ResultInactive&#61;no
 +
ResultActive&#61;yes}}
  
# valid suffixes: Hz, kHz (default), MHz, GHz, THz
+
Dove la parola ''utente'' deve essere rimpiazzata con il proprio nome utente.
min_freq="1GHz"
+
max_freq="2GHz"
+
</nowiki>}}
+
  
{{Note|I valori esatti min/max della frequenza per le CPU(s) possono essere determinate mediante l'esecuzione {{Codeline|cpufreq-info}} dopo aver caricato il driver della CPU appropriato (ad esempio {{Codeline|modprobe acpi-cpufreq}}). Tuttavia, questi valori sono ''opzionali''. Gli utenti possono omettere completamente eliminando o commentando la la linea min/max_freq; la variazione funzionerà automaticamente.}}
+
Il pacchetto {{AUR|desktop-privileges}} contenuto in [[AUR (Italiano)|AUR]] contiene un file .pkla simile, per autorizzare tutti gli utenti del [[Users and Groups (Italiano)|gruppo]] {{ic|power}} di cambiare il governatore.
  
Dopo aver effettuato la configurazione, avviare il demone con il seguente comando:
+
==Laptop Mode Tools==
{{Cli|# rc.d start cpufreq}}
+
  
Per avviare il demone automaticamente all'avvio, aggiungere {{Codeline|cpufreq}} alla stringa DAEMONS in {{Filename|/etc/rc.conf}}, ad esempio:
+
Se si sta già utilizzano o si intende utilizzare [[Laptop Mode Tools (Italiano)| Laptop Mode Tools]] per la gestione del risparmio energetico, si consiglia di lasciargli gestire anche la variazione della frequenza della CPU. Per farlo, basta inserire il driver appropriato in un file nella directory  {{ic|/etc/modules.d/}} (si veda [[#Driver per la frequenza della CPU|Driver per la frequenza della CPU]]  sopra descritto) e poi passare attraverso il file {{ic|/etc/laptop-mode/conf.d/cpufreq.conf}} per definire i governatori, frequenze e politiche. Non avrete bisogno di caricare altri moduli, demoni o impostare i governatori per l'interazione con gli eventi ACPI. Si prega di fare riferimento a [[Laptop Mode Tools (Italiano)| Laptop Mode Tools]] per maggiori dettagli.
DAEMONS=(syslog-ng networkmanager @alsa @crond @cupsd '''@cpufreq''')
+
  
=== Concessione dei privilegi sotto Gnome ===
+
== Granola ==
  
Gnome include un gradevole applet per cambiare il governatore al volo. Per usarlo senza la necessità di inserire la password di root bisogna creare il file {{Filename|/var/lib/polkit-1/localauthority/50-local.d/org.gnome.cpufreqselector.pkla}} e immettere le seguenti stringhe:
+
{{aur|granola}} è un demone che controlla l' utilizzo della CPU e utilizza il modulo cpufreq-userspace per diminuire il consumo di energia senza alcuna differenza in termini di prestazioni.
 +
Per usarlo, prima installare il pacchetto da AUR, le impostazioni predefinite funzionano per la maggior parte delle configurazioni.
 +
Sarà necessario caricare il modulo cpufreq_userspace, così come il governatore per lo scaling della per la propria CPU in fase di avvio.
 +
Creare due file come i seguenti per avviare i moduli al boot:
  
<pre>[org.gnome.cpufreqselector]
+
{{hc|/etc/modules-load.d/cpufreq_userspace.conf|
Identity=unix-user:USER
+
cpufreq_userspace
Action=org.gnome.cpufreqselector
+
}}
ResultAny=no
+
ResultInactive=no
+
ResultActive=yes</pre>
+
  
Dove la parola USER deve essere rimpiazzata con il proprio nome utente.
+
{{hc|/etc/modules-load.d/''governatore-scelto''.conf|
 +
''governatore-scelto''
 +
}}
  
Il pacchetto {{Package AUR|desktop-privileges}} contenuto in [[AUR]] contiene un file .pkla simile, per autorizzare tutti gli utenti del gruppo ''power'' di cambiare il governatore.
+
e riavviare.
  
===Laptop Mode Tools===
+
Per testare se funziona, eseguire:
 +
$ cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
 +
Oppure se avete installato cpufreq-utils:
 +
$ cpufreq-info
 +
e verificare che la frequenza della CPU sia inferiore al massimo.
  
Se si sta già utilizzano o si intende utilizzare [[Laptop Mode Tools (Italiano)| Laptop Mode Tools]] per la gestione del risparmio energetico, si consiglia di lasciargli gestire anche la variazione della frequenza della CPU. Per farlo, basta inserire il driver appropriato all'array MODULES in {{Filename|/etc/rc.conf}} (si veda [[#Driver per la frequenza della CPU|Driver per la frequenza della CPU]]  sopra descritto) e poi passare attraverso il file {{Filename|/etc/laptop-mode/conf.d/cpufreq.conf}} per definire i governatori, frequenze e politiche. Non avrete bisogno di caricare altri moduli, demoni o impostare i governatori per l'interazione con gli eventi ACPI. Si prega di fare riferimento a [[Laptop Mode Tools (Italiano)| Laptop Mode Tools]] per maggiori dettagli.
+
== Risoluzione dei problemi ==
 
+
== Troubleshooting ==
+
 
{{accuracy}}
 
{{accuracy}}
* Some applications, like [[ntop]], do not respond well to automatic frequency scaling. In the case of ntop it can result in segmentation faults and lots of lost information as even the {{Codeline|ondemand}} governor cannot change the frequency quickly enough when a lot of packets suddenly arrive at the monitored network interface that cannot be handled by the current processor speed.
 
 
* Some CPU's may suffer from poor performance with the default settings of the {{Codeline|ondemand}} governor (e.g. flash videos not playing smoothly or stuttering window animations). Instead of completely disabling frequency scaling to resolve these issues, the aggressiveness of frequency scaling can be increased by lowering the ''up_threshold'' [[sysctl]] variable for each CPU. See [[#Changing the ondemand governor's threshold]].
 
 
* Sometimes the ondemand governor may not throttle to the maximum frequency but one step below. This can be solved by setting max_freq value slightly higher than the real maximum. For example, if frequency range of the CPU is from 2.00 GHz to 3.00 GHz, setting max_freq to 3.01 GHz can be a good idea.
 
 
* Some CPU/BIOS configurations may have difficulties to scale to the maximum frequencies or scale to higher frequencies at all. Sadly there is only a workaround right now. Add "processor.ignore_ppc=1" to your kernel boot line and/or edit the value in {{Filename|/sys/module/processor/parameters/ignore_ppc}} from 0 to 1. (It seems to be fixed at least since kernel 3.0, for Toshiba NB-100)
 
  
* Some combinations of ALSA drivers and sound chips may cause audio skipping as the governor changes between frequencies, switching back to a non-changing governor seems to stop the audio skipping.
+
* Alcune applicazioni, come [[Ntop (Italiano)|ntop]], non rispondono bene alla variazione di frequenza automatica. Nel caso di ntop può causare difetti di segmentazione e un sacco di informazioni perse. Allo stesso modo il governatore {{ic|ondemand}} non può cambiare la frequenza abbastanza rapidamente quando molti di pacchetti arrivano improvvisamente alla interfaccia di rete monitorata che non possono essere gestiti da la velocità del processore corrente.
  
 +
* Alcune CPU possono soffrire di scarse prestazioni con le impostazioni predefinite del governatore {{ic|ondemand}} (ad esempio i video in flash possono soffrire di rallentamenti, o scatti nelle animazioni delle finestre). Invece di disabilitare completamente il frequency scaling per risolvere questi problemi, l'aggressività dello variazione di frequenza può essere aumentata riducendo la variabile [[sysctl]] ''up_threshold'' per ogni CPU. Si veda [[#Modifica della soglia (threshold) del governatore 'ondemand'|Modifica della soglia (threshold) del governatore 'ondemand']].
  
 +
* A volte il governatore {{ic|ondemand}} non può acceleratore alla frequenza massima, ma un gradino sotto. Questo può essere risolto impostando il valore max_freq ad uno leggermente superiore a quella massima reale. Per esempio, se la gamma di frequenza della CPU va da 2,00 GHz a 3,00 GHz, impostare max_freq a 3,01 GHz può essere una soluzione.
  
 +
* Alcune combinazioni di driver [[ALSA]] e chip sonori possono causare il salto dell'audio quando i governatori cambiano tra le frequenze, al passaggio del governatore l'audio potrebbe interrompersi per un attimo o saltare.
  
 +
=== Limitazione BIOS della frequenza ===
  
 +
Alcune configurazioni CPU/BIOS possono avere difficoltà a scalare le frequenze massime o scalare alla massima frequenza disponibile.
 +
Questo è probabilmente causato da eventi del BIOS che dicono al sistema operativo di limitare la frequenza con la conseguenza di  impostare {{ic|/sys/devices/system/cpu/cpu0/cpufreq/bios_limit}} al valore minimo.
  
'''La variazionde della frequenza della CPU''' è una tecnologia rivolta principalmente ai notebook che consente al sistema operativo di variare la velocità di funzionamento della CPU in base al sistema ed al consumo di energia. Per esempio, rallentando la CPU quando un notebook è alimentato dalla batteria, preserva la durata della batteria stessa. Intel definisce questa tecnologia SpeedStep. L'equivalente tecnologia di AMD è detta PowerNow! o Cool'n'Quiet.
+
Oppure, se si sono cambiate specifiche impostazione nel BIOS Setup Utility (frequenza , gestione termica , ecc), si può incolpare un BIOS danneggiato/obsoleto, altrimenti il BIOS potrebbe avere un motivo valido per limitare la frequenza della CPU.
  
= cpufrequtils =
+
Motivi del genere possono essere (se il vostro computer è un notebook ) causati da una rimozione incauta della batteria (o se sia prossima alla morte ), in modo da essere costretti ad utilizzare solo la rete elettrica. In questo caso, un debole alimentatore AC potrebbe non fornire energia elettrica sufficiente a soddisfare le richieste di picco estreme del sistema generale, e quando non vi è alcuna batteria inserita di supporto, potrebbe portare alla perdita di dati , la corruzione dei dati o nel peggiore dei casi , anche a danni hardware!
== Procedura ==
+
1. Installare <tt>cpufrequtils</tt>
+
  # pacman -S cpufrequtils
+
2.Caricare i moduli del kernel
+
  
Intel:
+
Non tutti i BIOS limitano la frequenza della CPU, in questo caso , ma per esempio accade sulla maggior parte dei IBM/Thinkpad Lenove, per maggiori informazioni relativi ai thinkpad, fare riferimento a thinkwiki  [http://www.thinkwiki.org/wiki/Problem_with_CPU_frequency_scaling su questa discussione].
  # modprobe acpi-cpufreq
+
  
Alcune vecchie CPU potrebbero restituire un errore simile al seguente:
+
Se avete controllato che non è solo un comportamento strano dell'ambiente BIOS e si sa cosa si sta facendo, allora si può dire al Kernel di ignorare questa limitazione del BIOS.
FATAL: Error inserting acpi_cpufreq ([...]/acpi-cpufreq.ko): No such device
+
  
In questo caso occorre sostituire acpi-cpufreq con uno dei seguenti moduli: speedstep-centrino, p4-clockmod, speedstep-ich.
+
{{Attenzione| Assicurarsi di aver letto e compreso quanto descritto nella sezione precedente. La limitazione di frequenza della CPU è una caratteristica di sicurezza del vostro BIOS e non dovrebbe essere necessario lavorarci sopra. E bene capirne la causa prima.}}
È comunque da notare che speedstep-centrino è deprecato, mentre p4-clockmod supporta solo i governor performance e powersave.
+
  
AMD:
+
Per effetuare una prova temporanea, modificare il valore in {{ic|/sys/module/processor/parameters/ignore_ppc}} da 0 a 1.
# modprobe powernow-k{6,7,8}
+
3. Caricare i gestori della variazione
+
# modprobe cpufreq_ondemand
+
# modprobe cpufreq_powersave
+
Questi moduli possono essere aggiunti all'elenco MODULES all'interno di<tt>/etc/rc.conf</tt>, così da mantenere la configurazione ad ogni riavvio. Per esempio:
+
  MODULES=( '''''acpi-cpufreq cpufreq_ondemand cpufreq_powersave''''' vboxdrv fuse fglrx iwl3945 ... )
+
o, se si ha un processore AMD:
+
  MODULES=( '''''powernow-k8 cpufreq_ondemand cpufreq_powersave''''' vboxdrv fuse fglrx iwl3945 ... )
+
4. Modificare <tt>/etc/conf.d/cpufreq</tt> come root, selezionando i gestori desiderati:
+
  
#configuration for cpufreq control
+
Per impostarlo in maniera permanente, si aggiunga {{ic|1=processor.ignore_ppc=1}} alla linea di caricamento del kernel.
# valid governors:
+
#  ondemand, performance, powersave,
+
#  conservative, userspace
+
governor="ondemand"
+
+
# valid suffixes: Hz, kHz (default), MHz, GHz, THz
+
min_freq="1GHz"
+
max_freq="2GHz"
+
Nota: le linee min_freq e max_freq dovrebbero essere commentate, dato che i driver presenti nel kernel possono rilevare questi valori automaticamente. Per esserne certi, lanciare:
+
# cpufreq-info
+
e controllarne l'output.
+
<br><br>
+
== Demone cpufreq ==
+
Opzionalmente, si può lanciare cpufreqd come demone
+
# /etc/rc.d/cpufreq start
+
Aggiungere <tt>cpufreq</tt> alla lista DAEMONS in <tt>/etc/rc.conf</tt>.
+
<br><br>
+
== GUI ==
+
Installare e configurare un'interfaccia grafica nel proprio Ambiente Desktop. Per KDE si può scegliere tra KLaptop e KPowersave. Quest'ultimo è reperibile tramite [[AUR]] ed è più completo. La versione in sviluppo (devel-version) è raccomandata, visto che non dipende più da <tt>powersave</tt>.
+
<br><br>
+
''Ulteriori informazioni sono disponibili alla pagina [[cpufrequtils]].''
+
<br><br>
+
'''Nota per processori MultiCore:'''
+
  
1. La variazione sarà applicata solo al primo core cpu0. Aggiungere queste linee al proprio <tt>/etc/rc.local</tt> per applicare la variazione ad ogni core.
+
{{hc|/etc/modprobe.d/ignore_ppc.conf|2=# If the frequency of your machine gets wrongly limited by BIOS, this should help
# echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
+
options processor ignore_ppc=1}}
# echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
+
...e così via fin a quando necessario, in base al numero di core.
+
  
2. Se il secondo core non segue le regole di variazione impostate dopo un "suspend to ram" (Stand by), modificare <tt>/usr/lib/hal/scripts/linux/hal-system-power-suspend-linux</tt> ed aggiungere le linee necessarie, per esempio:
+
Si faccia riferimento alla pagina [[Kernel_parameters]] se non si sa come procedere.
# echo "ondemand">/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
+
'''prima''' della riga finale ("exit$RET").
+
= Altre risorse =
+
[[cpufrequtils]] - informazioni per utenti esperti
+

Revision as of 10:58, 14 July 2013

Sommario help replacing me
Una panoramica sul popolare strumento userspace per il sottosistema CPUfreq del kernel.
Articoli Correlati
Laptop Mode Tools
pm-utils
PHC

Cpufreq si riferisce l'infrastruttura del kernel che implementa la variazione della frequenza della CPU. Questa tecnologia consente al sistema operativo di scalare la velocità della CPU verso l'alto o verso il basso in modo da risparmiare energia. Le frequenze della CPU possono essere scalati automaticamente a seconda del carico del sistema, in risposta agli eventi ACPI, o manualmente da programmi userspace. Gestori della variazione

Dalla versione del kernel 3.4 i moduli necessari sono caricati automaticamente e il governatore raccomandato ondemand è abilitato in maniera predefinita. Tuttavia le applicazioni a livello utente come cpupower, acpid , laptop-mode-tools o le GUI fornite dagli ambienti desktop possono essere ancora utilizzati per la configurazione avanzata.

tool userspace (cpupower)

cpupower è un insieme di utility in userspace che contribuire ad assicurare lo scaling della frequenza della CPU. Il pacchetto non è richiesto per l'uso dello scaling, ma è altamente consigliato in quanto fornisce utility a riga di comando e uno servizio per cambiare il governatore all'avvio.

Il file di configurazione di cpupower è situato in /etc/default/cpupower. Questo file di configurazione viene letto da script bash situati in /usr/lib/systemd/scripts/cpupower, i quali vengono attivati da systemd tramite cpupower.service. Si consiglia di abilitare cpupower all'avvio tramite systemd.

Un front-end per GNOME Shell è disponibile utilizzando CPU Freq.

Driver per la frequenza della CPU

  • Dalla versione 3.4 del kernel, i moduli nativi della CPU sono caricati automaticamente.
  • A partire dal kernel 3.9, il nuovo driver pstate per lo scaling di potenza viene usato automaticamente per le moderne CPU Intel al posto degli altri driver elencati sotto. Questo driver ha la priorità su tutti gli altri, e infatti è all'interno del kernel invece di essere un modulo da caricare. Questo driver è attualmente utilizzato automaticamente per tutti i tipi di CPU Sandy Bridge e Ivy Bridge. Se si verifica un problema durante l'utilizzo di questo driver, aggiungere intel_pstate=disable alla linea del kernel. É possibile utilizzare le solite utility in userpace con questo driver, ma non possono controllarne l'utilizzo.
  • Anche il comportamento di P State, menzionato sopra, può essere influenzato con /sys/devices/system/cpu/intel_pstate, ad esempio, Intel Turbo Boost può essere disattivato con # echo 1> /sys/devices/system/cpu/intel_pstate/no_turbo per mantenere basse le temperature delle CPU.

cpupower necessita di moduli (vedi tabella sotto) per conoscere i limiti della cpu nativa. Per visualizzare un elenco completo dei moduli disponibili , eseguire:

$ ls /lib/modules/$(uname -r)/kernel/drivers/cpufreq/
Suggerimento: Per caricare un modulo al boot, eseguire :
# echo modulo >/etc/modules-load.d/modulo.conf
Nota: Il caricamento del modulo errato si tradurrà in un errore "No such device"

Caricare il modulo appropriato con

# modprobe modulo
Module Description
acpi-cpufreq CPUFreq driver che utilizza le ACPI Processor Performance States. Questo driver supporta anche i processori Intel Enhanced Speedstep (precedentemente supportato dal deprecato modulo speedstep-centrino).
speedstep-lib CPUFreq driver per processori Intel che abilita lo SpeedStep (per lo più Atom e vecchi Pentium (<3)).
powernow-k8 CPUFreq driver processori K8/K10 Athlon64/Opteron/Phenom. Deprecato dalla versione linux 3.7 - Utilizzare acpi_cpufreq.
pcc-cpufreq Questo driver supporta l'interfaccia di controllo della frequenza di Clock dei processori da Hewlett-Packard e Microsoft Corporation, che è utile in alcuni server Proliant.
p4_clockmod CPUFreq driver processori Intel Pentium 4/XEON/Celeron. Quando è abilitato lo abbasserà soltanto la temperatura della CPU saltando la frequenza di clocks.
Probabilmente si preferisce usare un driver Speedstep al suo posto.

Una volta che avete caricato il driver appropriato per la gestione della frequenza della CPU, potrete ottenere delle informazioni dettagliate lanciando il seguente comando:

$ cpupower frequency-info

Gestori della variazione

I gestori della variazione (Governor - vedi tabella sotto) sono gli schemi di alimentazione per la CPU. Può essere attivo solo un governatore alla volta. Per maggiori dettagli si veda la documentazione ufficiale nei sorgenti del kernel.

Nota: Il kernel caricherà il governor on_demand per impostazione predefinita.
Modulo Descrizione
cpufreq_ondemand Passa dinamicamente tra le varie frequenze disponibili per le CPU(s) se il carico della cpu raggiunge il 95%
cpufreq_performance Fa funzionare le CPU(s) alla frequenza massima
cpufreq_conservative Passa gradualmente tra le varie frequenze disponibili per le CPU(s) se il carico della cpu raggiunge il 75%
cpufreq_powersave Fa funzionare le CPU(s) alla frequenza minima
cpufreq_userspace Fa funzionare le CPU(s) alla frequenza specificata dall'utente
Suggerimento: Per monitorare la velocità della Cpi in tempo reale, eseguire:
$ watch grep \"cpu MHz\" /proc/cpuinfo

Con cpupower

Per caricare e attivare un governatore particolare , si dovrebbe eseguire:

# cpupower frequency-set -g governor_senza_cpufreq

Senza cpupower

Suggerimento: Per caricare un governatore in fase di avvio, eseguire
# echo modulo > /etc/modules-load.d/modulo

Per caricare un governatore particolare , si dovrebbe eseguire:

# modprobe governor

Ottimizzare i governatori

Per impostare la soglia massima per passare ad un'altra frequenza

# echo -n percent > /sys/devices/system/cpu/cpufreq/governor/up_threshold

Per impostare la soglia mionima per passare ad un'altra frequenza

# echo -n percent > /sys/devices/system/cpu/cpufreq/governor/down_threshold
Sampling rate (Frequenza di campionamento)

Il Sampling rate determina l'intervallo con cui il governatore effettua un controllo per regolare la frequenza della cpu. Impostare il sampling_down_factor maggiore di 1 migliora le prestazioni riducendo l'overhead di valutazione del carico e mantiene la CPU alla frequenza massima di clock a causa del carico elevato. Questo parametro non ha alcun effetto sul comportamento a frequenze/carichi inferiori della CPU.

Per leggere l'attuale valore (default=1), eseguire:

$ cat /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor

Per impostare un valore, eseguire:

# echo -n valore > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor

Impostrare una frequenza Massima e Minima

Nota: La frequenza massima e minima di un governatore può essere impostato in /etc/default/cpupower. Per regolare un singolo core della cpu : -c core #. Dove clock_freq è la frequenza di clock, espressa in GHz,MHz.

Per impostare la frequenza massima di clock:

# cpupower frequency-set -u clock_freq

Per impostare la frequenza minima di clocl:

# cpupower frequency-set -d clock_freq

Per impostare il processore ad una determinata frequenza:

# cpupower frequency-set -f clock_freq

Interazione con gli eventi ACPI

Gli utenti possono configurare i gestori della variazione in modo tale che varino automaticamente in base agli eventi ACPI, come il collegamento all'adattatore di corrente o la chiusura di un coperchio del portatile. Un esempio veloce è riportata qui sotto, ma si consiglia la lettura dell'articolo completo su acpid.

Gli eventi sono definiti in /etc/acpi/handler.sh. Se il pacchetto acpid è installato, il file deve già esistere ed essere eseguibile. Ad esempio, per cambiare il governatore da performance a conservative quando l'adattatore CA viene scollegato, e viceversa se ricollegata:

/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
 ;;

[...]

Concessione dei privilegi sotto Gnome

Nota: Systemd ha introdotto logind, che gestisce le azioni consolekit e policykit. di conseguenza il seguente codice qui sotto non funziona. Con logind, si editi semplicemente nel file /usr/share/polkit-1/actions/org.gnome.cpufreqselector.policy la voce defaults con ciò che si necessita, in base alle direttive del manuale di polkit [1]

GNOME include un gradevole applet per cambiare il governatore al volo. Per usarlo senza la necessità di inserire la password di root bisogna creare il file /var/lib/polkit-1/localauthority/50-local.d/org.gnome.cpufreqselector.pkla e immettere le seguenti stringhe:

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

Dove la parola utente deve essere rimpiazzata con il proprio nome utente.

Il pacchetto desktop-privilegesAUR contenuto in AUR contiene un file .pkla simile, per autorizzare tutti gli utenti del gruppo power di cambiare il governatore.

Laptop Mode Tools

Se si sta già utilizzano o si intende utilizzare Laptop Mode Tools per la gestione del risparmio energetico, si consiglia di lasciargli gestire anche la variazione della frequenza della CPU. Per farlo, basta inserire il driver appropriato in un file nella directory /etc/modules.d/ (si veda Driver per la frequenza della CPU sopra descritto) e poi passare attraverso il file /etc/laptop-mode/conf.d/cpufreq.conf per definire i governatori, frequenze e politiche. Non avrete bisogno di caricare altri moduli, demoni o impostare i governatori per l'interazione con gli eventi ACPI. Si prega di fare riferimento a Laptop Mode Tools per maggiori dettagli.

Granola

granolaAUR è un demone che controlla l' utilizzo della CPU e utilizza il modulo cpufreq-userspace per diminuire il consumo di energia senza alcuna differenza in termini di prestazioni. Per usarlo, prima installare il pacchetto da AUR, le impostazioni predefinite funzionano per la maggior parte delle configurazioni. Sarà necessario caricare il modulo cpufreq_userspace, così come il governatore per lo scaling della per la propria CPU in fase di avvio. Creare due file come i seguenti per avviare i moduli al boot:

/etc/modules-load.d/cpufreq_userspace.conf
cpufreq_userspace
/etc/modules-load.d/governatore-scelto.conf
governatore-scelto

e riavviare.

Per testare se funziona, eseguire:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

Oppure se avete installato cpufreq-utils:

$ cpufreq-info

e verificare che la frequenza della CPU sia inferiore al massimo.

Risoluzione dei problemi

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:CPU frequency scaling (Italiano)#)
  • Alcune applicazioni, come ntop, non rispondono bene alla variazione di frequenza automatica. Nel caso di ntop può causare difetti di segmentazione e un sacco di informazioni perse. Allo stesso modo il governatore ondemand non può cambiare la frequenza abbastanza rapidamente quando molti di pacchetti arrivano improvvisamente alla interfaccia di rete monitorata che non possono essere gestiti da la velocità del processore corrente.
  • Alcune CPU possono soffrire di scarse prestazioni con le impostazioni predefinite del governatore ondemand (ad esempio i video in flash possono soffrire di rallentamenti, o scatti nelle animazioni delle finestre). Invece di disabilitare completamente il frequency scaling per risolvere questi problemi, l'aggressività dello variazione di frequenza può essere aumentata riducendo la variabile sysctl up_threshold per ogni CPU. Si veda Modifica della soglia (threshold) del governatore 'ondemand'.
  • A volte il governatore ondemand non può acceleratore alla frequenza massima, ma un gradino sotto. Questo può essere risolto impostando il valore max_freq ad uno leggermente superiore a quella massima reale. Per esempio, se la gamma di frequenza della CPU va da 2,00 GHz a 3,00 GHz, impostare max_freq a 3,01 GHz può essere una soluzione.
  • Alcune combinazioni di driver ALSA e chip sonori possono causare il salto dell'audio quando i governatori cambiano tra le frequenze, al passaggio del governatore l'audio potrebbe interrompersi per un attimo o saltare.

Limitazione BIOS della frequenza

Alcune configurazioni CPU/BIOS possono avere difficoltà a scalare le frequenze massime o scalare alla massima frequenza disponibile. Questo è probabilmente causato da eventi del BIOS che dicono al sistema operativo di limitare la frequenza con la conseguenza di impostare /sys/devices/system/cpu/cpu0/cpufreq/bios_limit al valore minimo.

Oppure, se si sono cambiate specifiche impostazione nel BIOS Setup Utility (frequenza , gestione termica , ecc), si può incolpare un BIOS danneggiato/obsoleto, altrimenti il BIOS potrebbe avere un motivo valido per limitare la frequenza della CPU.

Motivi del genere possono essere (se il vostro computer è un notebook ) causati da una rimozione incauta della batteria (o se sia prossima alla morte ), in modo da essere costretti ad utilizzare solo la rete elettrica. In questo caso, un debole alimentatore AC potrebbe non fornire energia elettrica sufficiente a soddisfare le richieste di picco estreme del sistema generale, e quando non vi è alcuna batteria inserita di supporto, potrebbe portare alla perdita di dati , la corruzione dei dati o nel peggiore dei casi , anche a danni hardware!

Non tutti i BIOS limitano la frequenza della CPU, in questo caso , ma per esempio accade sulla maggior parte dei IBM/Thinkpad Lenove, per maggiori informazioni relativi ai thinkpad, fare riferimento a thinkwiki su questa discussione.

Se avete controllato che non è solo un comportamento strano dell'ambiente BIOS e si sa cosa si sta facendo, allora si può dire al Kernel di ignorare questa limitazione del BIOS.

Attenzione: Assicurarsi di aver letto e compreso quanto descritto nella sezione precedente. La limitazione di frequenza della CPU è una caratteristica di sicurezza del vostro BIOS e non dovrebbe essere necessario lavorarci sopra. E bene capirne la causa prima.

Per effetuare una prova temporanea, modificare il valore in /sys/module/processor/parameters/ignore_ppc da 0 a 1.

Per impostarlo in maniera permanente, si aggiunga processor.ignore_ppc=1 alla linea di caricamento del kernel.

/etc/modprobe.d/ignore_ppc.conf
# If the frequency of your machine gets wrongly limited by BIOS, this should help
options processor ignore_ppc=1

Si faccia riferimento alla pagina Kernel_parameters se non si sa come procedere.