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

From ArchWiki
Jump to: navigation, search
m (Driver per la frequenza della CPU: aggiunto driver speedstep-centrino)
m (tradotto il sommario dell'articolo)
Line 5: Line 5:
 
{{i18n|CPU Frequency Scaling}}
 
{{i18n|CPU Frequency Scaling}}
  
{{Article summary start}}
+
{{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.html CPUfreq] del kernel.}}
 
{{Article summary text|Una panoramica sul popolare strumento userspace  per il sottosistema [http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufreq.html CPUfreq] del kernel.}}
{{Article summary heading|Related}}
+
{{Article summary heading|Articoli Correlati}}
 
{{Article summary wiki|Laptop Mode Tools (Italiano)|Laptop_Mode_Tools}}
 
{{Article summary wiki|Laptop Mode Tools (Italiano)|Laptop_Mode_Tools}}
 
{{Article summary wiki|pm-utils}}
 
{{Article summary wiki|pm-utils}}

Revision as of 07:57, 16 October 2011


This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

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

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.

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 cpufrequtils, acpid , laptop-mode-tools e strumenti grafici forniti per l'ambiente desktop.

cpufrequtils

Template:Package Official è 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 ).

Il pacchetto Template:Package Official è reperibile nel repository [extra]:

# pacman -S cpufrequtils

Configurazione

Il processo di configurazione della variazione di frequenza della CPU è suddivisa in tre fasi:

  1. Caricare il driver appropriato in grado di gestire la frequenza della CPU
  2. Caricare il governatore/i desiderati per lo scaling CPU
  3. 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 demone cpufrequtils ,
    • Laptop Mode Tools,
    • Eventiacpid,
    • Applets/utility del proprio ambiente desktop,
    • o una combinazione dei questi.

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. Se avete un processore a 64 bit, è molto probabile che il driver appropriato sia Template:Codeline per processori Intel o Template:Codeline 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. Per vedere una lista completa dei driver disponibili, eseguire il seguente comando:

$ 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 Template:Filename).

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-centrino CPUFreq driver per i procesori Intel Pentium M utilizzato anche da alcuni processori Intel Core-series.
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-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.
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.
p4-clockmod CPUFreq driver processori Intel Pentium 4/XEON. Quando è abilitato lo abbasserà soltanto la temperatura della CPU saltando la frequenza di clocks.
Probabilmente si preferisce usare un driver Speedstep al suo posto.


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: Template:Command

Per caricare in modo automatico all'avvio del sistema il driver, aggiungere il modulo appropriato nella stringa MODULES nel faile Template:Filename. Ad esempio:

MODULES=(acpi-cpufreq)

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).

Gestori della variazione disponibili:

Template:Codeline (predefinito)
Il gestore performance è integrato nel kernel e fa funzionare le CPU(s) alla velocità massima di clock
Template:Codeline (raccomandato)
Questo gestore passa dinamicamente tra le varie velocità di clock disponibili per le CPU(s) in base al carico di sistema.
Template:Codeline
Simile a Template:Codeline, ma in questo caso passa gradualmente tra le varie velocità di clock disponibili per le CPU(s) in base al carico di sistema.
Template:Codeline
Fa funzionare le CPU(s) alla velocità minima di Clock.
Template:Codeline
Configurazione manuale della velocità di Clock stabilita dall'utente.

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.

Caricare il gestore/i desiderati con il comando Template:Codeline. Ad esempio:

# modprobe cpufreq_ondemand
# modprobe cpufreq_userspace

In alternativa, aggiungere i gestori desiderati nela stringa MODULES in Template:Filename 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 Template:Codeline 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 Template:Codeline 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 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 Template:Codeline eTemplate:Codeline. Le frequenze valide disponibili possono essere consultate con il comando Template:Codeline. 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 Template:Codeline o Template:Codeline per maggiori informazioni.

Per coloro che desiderano avere una interfaccia grafica per impostare i vari governatori, o la frequenza di esercizio, è presente 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:

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

Migliorare le prestazioni di 'ondemand'

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.

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.

Parametri di miglioramento sono disponibili in Template:Filename una volta che il governatore viene caricato e selezionato, e può essere impostato per essere utilizzabile al riavvio Template:Filename.

Avviare il demone cpufreq in background (cioè con un '@' davanti in Template:Filename) probabilmente causerà la lettura di Template:Filename 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:

Template:File

Modifica della soglia (threshold) del governatore 'ondemand'

Per impostare quando il governatore Template:Codeline passa ad un moltiplicatore più alto, si può manipolare il valore di Template:Filename. Determinare l'impostazione corrente eseguendo il seguente comando come root:

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

Il valore restituito dovrebbe essere Template:Codeline, ovvero l'impostazione predefinita della versione del Kernel 3.0. Ciò significa che il governatore Template:Codeline aumenta la frequenza di clock se un Core raggiunge il 95% di utilizzo. Questo valore può essere cambiato, ad esempio:

# echo -n 15 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
Modificare il sampling-down-factor del governatore ondemand

sampling_down_factor è un altro parametro globale che si può impostare in ondemand.

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.

Rilevare il valore attuale (predefinito: 1):

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

Impostare un valore:

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

Migliorare le prestazioni di 'conservative'

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 Template:Codeline si può migliorare in prestazioni e reattività.

Parametri di miglioramento sono disponibili in Template:Filename. Fare riferimento alla sezione ondemand per un consiglio importante per come rendere queste modifiche permanenti, e i potenziali problemi con il caricamento del demone all'avvio del sistema.

Modifica della soglia (threshold) del governatore 'conservative'

Determinare l'impostazione corrente Template:Codeline eseguendo il seguente comando come root:

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

Il valore restituito dovrebbe essere Template:Codeline, ovvero l'impostazione predefinita della versione del Kernel 3.0. Ciò significa che il governatore Template:Codeline aumenta la frequenza di clock se un Core raggiunge il 75% di utilizzo. Questo valore può essere cambiato, ad esempio:

# echo -n 40 > /sys/devices/system/cpu/cpufreq/conservative/up_threshold
Note: il valore minimo che si imposta deve essere superiore a quella del valore di in Template:Codeline, immettere un valore inferiore ad esso genera l'errore, "bash: echo: write error: Invalid argument"

Allo stesso modo il valore Template:Codeline può essere letto e modificato tramite Template:Filename. Il valore di predefinito dovrebbe essere Template:Codeline nella versione 3.0 del kernel. Ciò significa che il governatore Template:Codeline diminuisce la frequenza di clock alla velocità più bassa successiva se un core scende al 20% di utilizzo, che è un valore ragionevole.

Sebbene la frequenza di campionamento può essere regolata verso il basso per il governatore Template:Codeline, l'aumento di questo valore può solo aiutare con picchi di utilizzo occasionalmente bassi della CPU durante l'utilizzo di più applicazioni, il Template:Codeline è un controllo molto più diretto per il ridimensionamento che non esiste sul governatore Template:Codeline.

Bisogna essere consapevoli del fatto che l'impostazione Template:Codeline troppo vicino al Template:Codeline 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 Template:Codeline o Template:Codeline 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.

Gli eventi sono definiti in Template:Filename. Se il pacchetto Template:Package Official è installato, il file deve già esistere ed essere eseguibile. Ad esempio, per cambiare il governatore da Template:Codeline a Template:Codeline quando l'adattatore CA viene scollegato, e viceversa se ricollegata:

Template:File

Demone

Template:Codeline 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 Template:Filename come root, selezionando il governatore desiderato e impostare il valore min/max della velocità per le CPU(s), ad esempio:

Template:File

Note: I valori esatti min/max della frequenza per le CPU(s) possono essere determinate mediante l'esecuzione Template:Codeline dopo aver caricato il driver della CPU appropriato (ad esempio Template:Codeline). Tuttavia, questi valori sono opzionali. Gli utenti possono omettere completamente eliminando o commentando la la linea min/max_freq; la variazione funzionerà automaticamente.

Dopo aver effettuato la configurazione, avviare il demone con il seguente comando: Template:Cli

Per avviare il demone automaticamente all'avvio, aggiungere Template:Codeline alla stringa DAEMONS in Template:Filename, ad esempio:

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

Concessione dei privilegi sotto Gnome

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 Template:Filename e immettere le seguenti stringhe:

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

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

Il pacchetto Template:Package AUR 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 all'array MODULES in Template:Filename (si veda Driver per la frequenza della CPU sopra descritto) e poi passare attraverso il file Template:Filename 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.

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 Template:Codeline 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 Template:Codeline (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 Template:Codeline 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 configurazioni CPU/BIOS possono avere difficoltà a scalare le frequenze massime o scalare alla massima frequenza disponibile. Purtroppo c'è solo una soluzione al momento. Aggiungere "processor.ignore_ppc = 1" alla linea del kernel di avvio e/o modificare il valore in Template:Filename da 0 a 1. (Sembra essere risolto a partire dal kernel 3.0, per Toshiba NB-100)
  • 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.