Una volta esaurito il nostro compito principale di rimuovere dal server i processi inutili, che sprecano cicli di processore, possiamo procedere al passo successivo: far lavorare più lentamente il nostro processore.
Diverse tra le più recenti famiglie di processori tra cui Intel SpeedStep, AMD Cool'n'Quiet e VIA LongHaul supportano la possibilità di abbassare dinamicamente la propria frequenza di lavoro. Ridurre la frequenza significa ridurre anche il consumo di energia.
L'abbassamento di frequenza può essere manuale, oppure essere collegato ad appositi processi di gestione automatica dell'energia. La funzione di modifica automatica della frequenza è quasi sempre presente nei computer portatili, che applicano diversi parametri in base al fatto che l'unità sia collegata alla rete elettrica oppure stia lavorando a batteria.
Nel caso di server, ovviamente, il suggerimento è quello di schedulare i passaggi tra le varie modalità in modo da far consumare di meno il server nei periodi di utilizzo nullo o quasi. È chiaro che l'abbassamento della frequenza significa che il server sarà un po' più lento a rispondere, ma nella maggior parte dei casi il compromesso è accettabile.
Su Windows, è possibile assegnare una specifica percentuale di efficienza del processore a ciascuna combinazione di risparmio energetico attraverso l'apposita opzione dal Pannello di Controllo. In seguito, tramite l'eseguibile powercfg
è possibile realizzare script automatizzati e quindi schedulabili per passare da una combinazione all'altra.
Digitando powercfg /?
da linea di comando, o consultando questo articolo della Knowledge Base di Microsoft, potrete conoscere tutte le opzioni di questo prezioso strumento.
Su Linux, l'implementazione della modifica della velocità del processore è realizzata dal modulo acpi-cpufreq
, che deve essere quindi caricato all'avvio. La modalità di caricamento di moduli all'avvio dipende dalla distribuzione che state usando; su sistemi Debian e Ubuntu, il nome del modulo va inserito in /etc/modules
. Sono inoltre necessari i moduli relativi ai vari governors, cioè ai gestori delle varie modalità della CPU:
cpufreq_performance
- default, mantiene la CPU alla massima frequenza disponibile
cpufreq_powersave
- mantiene la CPU alla minima frequenza disponibile
cpufreq_userspace
- permette il controllo diretto della frequenza da parte dell'utente
cpufreq_ondemand
- adatta automaticamente la frequenza in base alla richiesta del sistema
cpufreq_conservative
- simile a cpufreq_ondemand, ma con variazioni più graduali
Per impostare una di queste modalità, è necessario andare a scrivere nel file che controlla i governor:
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Impostando l'utilizzo su ondemand
avremo un risparmio continuo, ma probabilmente un piccolo ritardo nelle prestazioni del server. È preferibile invece schedulare l'ingresso in modalità powersave
alla sera e il ritorno in modalità performance
la mattina dopo, per far sì che durante la notte il server riposi e consumi di meno.