Cpufreqd: Un demone per il CPU frequency scaling: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(corretta gerarchia titoli)
m (verificata per Buster, utilizzato default nell'esempio)
 
(16 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Tutte le versioni di Debian|}}
{{Versioni compatibili|Jessie|Stretch|Buster}}
== Introduzione ==
== Introduzione ==
I processori Intel della famiglia Pentium M, caratteristici dell'architettura Centrino, sono ancora discretamente diffusi. Alcune caratteristiche di queste CPU sono: la scarsa dissipazione di calore (minor calore emesso, a parità di frequenza operativa, indica un'efficienza elettrica superiore) e la capacità di mutare la velocità del clock in base alla effettiva necessità di potenza di calcolo. Questo significa che un processore di questo tipo è in grado di diminuire anche drasticamente la propria velocità quando non sono necessarie prestazioni elevate a vantaggio di una maggior durata della batteria.
La maggior parte dei processori è da tempo in grado di mutare la velocità del clock in base alla effettiva necessità di potenza di calcolo.


I Pentium M si comportano egregiamente in accoppiata con GNU/Linux: vediamo in breve come configurare il nostro sistema per trarne beneficio.
Alcune caratteristiche di queste CPU sono: la scarsa dissipazione di calore (minor calore emesso, a parità di frequenza operativa, indica un'efficienza elettrica superiore) e la capacità di mutare la velocità del clock in base alla effettiva necessità di potenza di calcolo.
 
Molti di questi si comportano egregiamente in accoppiata con GNU/Linux: vediamo in breve come configurare il nostro sistema per trarne beneficio.


== Configurazione del kernel ==
== Configurazione del kernel ==
In linea di massima il kernel fornito dai recenti CDROM di installazione di Debian contiene già quanto necessario ad utilizzare al meglio il nostro Pentium M. La compilazione manuale di un kernel più aggiornato può ovviamente dare benefici ulteriori.
In linea di massima il kernel pacchettizzato da Debian contiene già quanto necessario ad utilizzare al meglio il nostro processore.  
 
La compilazione manuale di un kernel più aggiornato può ovviamente dare benefici ulteriori.
 
I supporti che dobbiamo abilitare nel kernel sono essenzialmente:
I supporti che dobbiamo abilitare nel kernel sono essenzialmente:
<pre># CPU Frequency scaling
<pre># CPU Frequency scaling
Riga 16: Riga 21:
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
</pre>
</pre>
In questo modo abilitiamo la capacità del kernel di interagire con lo speed-stepping del nostro processore e cioè la sua capacità di variare la propria frequenza operativa. I governor (le modalità di sfruttamento dello stepping) abilitati sono "performance" e "ondemand". Il primo verrà utilizzato quando il portatile è alimentato tramite rete elettrica e permetterà il funzionamento costante a piena frequenza, mentre il secondo interverrà quando il portatile è alimentato tramite batteria e scalerà la frequenza del processore fino a circa il 50% del suo totale.
In questo modo abilitiamo la capacità del kernel di interagire con lo speed-stepping del nostro processore e cioè la sua capacità di variare la propria frequenza operativa.


È anche necessario abilitare l'ACPI nel proprio kernel (il kernel Debian ha il supporto già abilitato).
È anche necessario abilitare l'ACPI nel proprio kernel (il kernel Debian ha il supporto già abilitato).


== Configurazione: cpufreqd ==
== Configurazione: cpufreqd ==
''Cpufreqd'' è un demone che controlla il tipo di alimentazione fornita al portatile (batteria o rete elettrica) e stabilisce quale governor utilizzare.
''Cpufreqd'' è un [[demone]] che controlla il tipo di alimentazione fornita al portatile (batteria o rete elettrica) e stabilisce quale governor utilizzare.
 
Installiamo ''cpufreqd'' in pieno stile Debian, con [[privilegi di amministrazione]]:
<pre># apt install cpufreqd</pre>
 
I governor (le modalità di sfruttamento dello stepping) abilitati sono diversi a seconda del tipo di processore, è possibile verificare quali sono quelli disponibili impartendo il comando:
<pre>$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors</pre>
 
Tra i più comuni troviamo "performance", "ondemand" e "powersave".
 
Il primo (performance) verrà utilizzato quando il portatile è alimentato tramite rete elettrica e permetterà il funzionamento costante a piena frequenza, mentre il secondo (ondemand) interverrà quando il portatile è alimentato tramite batteria e scalerà la frequenza del processore fino a circa il 50% del suo totale, il terzo (powersave) interverrà con l'alimentazione a batteria riducendo la frequenza al minimo possibile.
 
Le frequenze disponibili si possono sapere impartendo il comando:
<pre>$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies</pre>
 
Il file di configurazione di Cpufreqd è ''/etc/cpufreqd.conf'', dove all'interno potrete modificare a vostro piacimento le configurazioni presenti anche se di default propone una soluzione standard che va bene per molti.
 
A volte si rende necessaria una modifica al file <code>/etc/default/cpufreqd</code>, per indicare il giusto modulo, di seguito il mio file di configurazione:
<pre># Cpufreqd startup configuration
 
# CPU kernel module.
# Leave empty if you wish to load the modules another way,
# or if CPUFreq support for your cpu is built in.
CPUFREQ_CPU_MODULE=""
 
# Governor modules.
# A list separated by spaces. They are needed by cpufreqd
# to load your policies. The init script can automatically
# try to load them. Leave empty to disable loading governor
# modules at all, use "auto" to let the script do the job.
CPUFREQ_GOV_MODULES="auto"</pre>
 
Se il modulo del kernel non viene caricato automaticamente, a seconda del processore è possibile utilizzare "acpi_cpufreq" o uno degli altri driver in <code>/lib/modules/$(uname -r)/kernel/drivers/cpufreq</code>.


Installiamo ''cpufreqd'' in pieno stile Debian:
Per verificare che tutto sia a posto e che il modulo sia caricato correttamente all'avvio, si consiglia la consultazione del file ''/var/log/boot'' .
<pre># apt-get install cpufreqd</pre>
Il linea di massima non dobbiamo fare altro, almeno nella configurazione di base trattata in questa guida.


== Conclusioni ==
Nel caso il log non sia presente, installare il pacchetto <code>bootlogd</code> .
L'utilizzo di questa tecnologia permette al mio portatile un'autonomia, con un utilizzo non gravoso (uso tipico: ufficio), di circa 3 ore; mentre con MS Windows - avvantaggiato da tutta una serie di altre utility e di driver specifici - l' autonomia media era (prima di essere piallato senza rimpianti) 3,20 ore: non male dopotutto per GNU/Linux!


Esistono anche altri programmi che ci aiutano a risparmiare energia: segnalo, tra gli altri, ''noflushd''.
== Approfondimenti ==
* [[Modulare il funzionamento di una CPU]], guida che riguarda la configurazione statica del sistema, senza l'uso di questo demone, ma spiega nel dettaglio anche tutte le opzioni principali.


{{Autori
|Autore = [[User:Keltik|keltik]] 15:16, Set 28, 2005 (EDT)
|Estesa_da =
:[[User:Mm-barabba|Mm-barabba]] 03:27, 12 dic 2010 (CET)
|Verificata_da =
:[[User:Mm-barabba|Mm-barabba]]
:[[Utente:HAL 9000|HAL 9000]] 11:06, 28 lug 2019 (CEST)
|Numero_revisori = 2
}}


----
[[Categoria:Ottimizzazione del sistema]]
[[Utente:Keltik|keltik]] 15:16, Set 28, 2005 (EDT)
[[Categoria:Computer portatili]]
[[Categoria:Laptop]]

Versione attuale delle 09:06, 28 lug 2019

Debian-swirl.png Versioni Compatibili

Debian 8 "jessie"
Debian 9 "stretch"
Debian 10 "buster"

Introduzione

La maggior parte dei processori è da tempo in grado di mutare la velocità del clock in base alla effettiva necessità di potenza di calcolo.

Alcune caratteristiche di queste CPU sono: la scarsa dissipazione di calore (minor calore emesso, a parità di frequenza operativa, indica un'efficienza elettrica superiore) e la capacità di mutare la velocità del clock in base alla effettiva necessità di potenza di calcolo.

Molti di questi si comportano egregiamente in accoppiata con GNU/Linux: vediamo in breve come configurare il nostro sistema per trarne beneficio.

Configurazione del kernel

In linea di massima il kernel pacchettizzato da Debian contiene già quanto necessario ad utilizzare al meglio il nostro processore.

La compilazione manuale di un kernel più aggiornato può ovviamente dare benefici ulteriori.

I supporti che dobbiamo abilitare nel kernel sono essenzialmente:

# CPU Frequency scaling
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y

In questo modo abilitiamo la capacità del kernel di interagire con lo speed-stepping del nostro processore e cioè la sua capacità di variare la propria frequenza operativa.

È anche necessario abilitare l'ACPI nel proprio kernel (il kernel Debian ha il supporto già abilitato).

Configurazione: cpufreqd

Cpufreqd è un demone che controlla il tipo di alimentazione fornita al portatile (batteria o rete elettrica) e stabilisce quale governor utilizzare.

Installiamo cpufreqd in pieno stile Debian, con privilegi di amministrazione:

# apt install cpufreqd

I governor (le modalità di sfruttamento dello stepping) abilitati sono diversi a seconda del tipo di processore, è possibile verificare quali sono quelli disponibili impartendo il comando:

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

Tra i più comuni troviamo "performance", "ondemand" e "powersave".

Il primo (performance) verrà utilizzato quando il portatile è alimentato tramite rete elettrica e permetterà il funzionamento costante a piena frequenza, mentre il secondo (ondemand) interverrà quando il portatile è alimentato tramite batteria e scalerà la frequenza del processore fino a circa il 50% del suo totale, il terzo (powersave) interverrà con l'alimentazione a batteria riducendo la frequenza al minimo possibile.

Le frequenze disponibili si possono sapere impartendo il comando:

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

Il file di configurazione di Cpufreqd è /etc/cpufreqd.conf, dove all'interno potrete modificare a vostro piacimento le configurazioni presenti anche se di default propone una soluzione standard che va bene per molti.

A volte si rende necessaria una modifica al file /etc/default/cpufreqd, per indicare il giusto modulo, di seguito il mio file di configurazione:

# Cpufreqd startup configuration

# CPU kernel module.
# Leave empty if you wish to load the modules another way,
# or if CPUFreq support for your cpu is built in.
CPUFREQ_CPU_MODULE=""

# Governor modules.
# A list separated by spaces. They are needed by cpufreqd
# to load your policies. The init script can automatically
# try to load them. Leave empty to disable loading governor
# modules at all, use "auto" to let the script do the job.
CPUFREQ_GOV_MODULES="auto"

Se il modulo del kernel non viene caricato automaticamente, a seconda del processore è possibile utilizzare "acpi_cpufreq" o uno degli altri driver in /lib/modules/$(uname -r)/kernel/drivers/cpufreq.

Per verificare che tutto sia a posto e che il modulo sia caricato correttamente all'avvio, si consiglia la consultazione del file /var/log/boot .

Nel caso il log non sia presente, installare il pacchetto bootlogd .

Approfondimenti

  • Modulare il funzionamento di una CPU, guida che riguarda la configurazione statica del sistema, senza l'uso di questo demone, ma spiega nel dettaglio anche tutte le opzioni principali.




Guida scritta da: keltik 15:16, Set 28, 2005 (EDT) Swirl-auth60.png Debianized 60%
Estesa da:
Mm-barabba 03:27, 12 dic 2010 (CET)
Verificata da:
Mm-barabba
HAL 9000 11:06, 28 lug 2019 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized