7
Capitolo 1
Risparmio energetico
In questo capitolo verranno trattate tematiche riguardanti il risparmio
energetico in ambiti diversi, per le grandi reti di computer e i data center, le reti
wireless multi hop e per la connessione a internet con gli smartphone.
1.1 Il problema del consumo energetico
Il problema ambientale ed economico che comporta l’alto fabbisogno
energetico è piuttosto serio e porta i produttori di computer a sviluppare tecniche
di risparmio energetico per la computazione, la conservazione, e le
apparecchiature di rete.
Un esempio è dato dall’energia consumata dai data center e, in particolare, nei
server ospitati in essi; poichØ vi è una crescente diffusione del web e la domanda
di servizi Internet va aumentando, il consumo di energia consumata nei data
center è salita alle stelle. Nel 2006, infatti, server e data center hanno consumato
61 miliardi di kWh con un costo di 4,5 miliardi di dollari, e la domanda è
destinata a raddoppiare entro il 2011 [1], solo negli Stati Uniti la proiezione è di
100 milioni di kWh per quanto riguarda il consumo e di 7,4 milioni di dollari per
il costo complessivo; recenti studi stimano che un server consuma 300W e circa
330$ di energia per anno [2]. Purtroppo, gran parte di questa energia viene
sprecata in basso utilizzo: in un tipico data center, i server funzionano al 30%
della loro possibilità e consumano almeno il 65% del potenza [3]. Questo spreco è
aggravato dalle perdite in erogazione di potenza, dalle inefficienze di
alimentazione e raffreddamento e dai costi infrastrutturali.
Queste tecniche mirano a fornire energia proporzionale al calcolo
attraverso (a) l’utilizzo del consolidamento per spostare i carichi di lavoro fuori
8
dai server sottoutilizzati e facendo passare questi in modalità a basso consumo, e
(b) l’adeguamento del tasso di attività (ad esempio, la frequenza della CPU) dei
server attivi.
1.1.1 Sfide del risparmio energetico
Gli operatori che vogliono gestire queste tecniche per risparmiare energia
affrontano tre sfide:
1) Massimizzare il risparmio di energia vs. minimizzare la domanda di carico
non soddisfatta:
ovvero eseguire tutto il lavoro riducendo al minimo il consumo di energia.
Un modo semplice di approvvigionamento delle risorse sarebbe quello di
mantenere tutti i server nello stato con piø alte prestazioni. Questo approccio
assicura che il sistema soddisfi la domanda di carico specificata dagli Service-
Level Objectives (SLO), ma consuma troppo energia quando il carico è basso.
Gli SLO, o Obiettivi di livello di servizio, sono specifiche caratteristiche
misurabili di un contratto di servizio tra un fornitore di servizi e un cliente; sono
comunemente usati come mezzo per misurare le prestazioni del Service Provider e
riguardano la disponibilità, la velocità, la frequenza, il tempo di risposta, la
qualità, ecc.
Un approccio diverso è quello di mettere tutti i server a tensione e frequenza
basse, sufficienti solo a soddisfare la domanda, ma questo è a rischio di violazioni
SLO. Un approvvigionamento statico o improprio può causare la perdita di
prestazioni e lo spreco di energia sotto carichi di lavoro dinamici, che, ad
esempio, sono tipici nei data center.
2) Gestire piø stati di potenza vs. alte latenze di transizione relative alla
gestione dell'alimentazione su piø livelli:
I server oggi supportano piø sistemi di gestione della potenza, come DVFS
(ACPI stato P), stand-by(ACPI stato S3) e sospensione/ibernazione(ACPI stato
S4). Mentre questi stati offrono un controllo capillare tra potenza e prestazioni,
pongono compromessi tra complessità del software per la gestione
9
dell’assorbimento di potenza e la latenza nelle transizioni – in modalità a basso
consumo vi è un minimo assorbimento di potenza dei server inattivi, ma comporta
un ritardo alto per avviare la macchina, per esempio un server in modalità di
sospensione assorbe 2W-5W rispetto ai 200W quando è attivo, ma ci vogliono
30-60 secondi per la transizione da sospeso ad attivo.
3) Ridurre l'impatto sull'affidabilità con il bilanciamento del risparmio
energetico:
Ripetuti cicli di on-off(accensione/spegnimento) aumentano l'usura e lacerazione
dei componenti del server (ad esempio, i dischi), incorrendo in costi per
l'approvvigionamento e la sostituzione. Allo stesso modo, la durata del processore
può essere influenzato dagli effetti termici dovuti ai cicli on-off. Gli operatori
indicano che una grande frazione di guasti hardware indotti sono ricorrenti: se si
verifica un crash del server a causa di hardware difettoso è altamente probabile
che il crash si verifichi di nuovo. Quindi, si ha bisogno di bilanciare il
compromesso tra il risparmio energetico e l'affidabilità dei costi di riparazione dei
componenti server difettosi.
Queste sfide vengono affrontate sempre quando si ha a che fare con i computer e
tanti altri dispositivi elettronici.
1.2 Grandi reti di computer e data center
Come visto nel paragrafo precedente, i costi dell’energia elettrica possono
avere un’alta incidenza nel bilancio di un data center, o di una normale rete, se
non si applicano dei sistemi o delle strategie di risparmio energetico. In questo
paragrafo saranno trattati l’approvvigionamento eco-consapevole per i server di
un data center, il calcolo di funzioni in-rete su reti casuali con l’instradamento dei
dati a basso consumo e sotto dei vincoli di latenza e gli algoritmi di scheduling
eco-consapevoli che mantengono la rete stabile.
10
1.2.1 Approvvigionamento eco-consapevole dei server di
un data center
Un data center è un'unità organizzativa che coordina e mantiene le
apparecchiature ed i servizi di gestione dei dati, sono costituiti da moltissimi
computer nel quale la computazione è divisa.
Data center aziendali e ambienti ospitano spesso
dei server con configurazioni eterogenee per le
esigenze di applicazioni specifiche, gli aggiorna-
menti delle attrezzature, i sistemi ereditati, ecc.
Un server mantenuto attivo per elaborare il carico
di lavoro consuma energia, piø si incorre in costi di energia elettrica, di
distribuzione di energia e di raffreddamento per assicurare un funzionamento
stabile. Pertanto, l'obiettivo degli operatori dei data center è quello di soddisfare la
domanda sotto specifiche SLO, riducendo al minimo i costi energetici di
funzionamento. Mentre il consolidamento dei server può aumentare l'utilizzo
complessivo e diminuire la potenza spesa in idle(tempo di attesa della CPU
quando non ha carico di lavoro), riducendo al minimo il numero di server attivi, i
data center hanno ancora bisogno di capacità sufficiente per gestire il carico di
picco. Inoltre, il consolidamento non consente di salvare automaticamente
l'energia per come gli amministratori hanno bisogno di consolidare i servizi e
disattivare la capacità non necessarie. Infine, le preoccupazioni sulla robustezza
del servizio spesso preclude il consolidamento di servizi mission-critical(servizi
relativi a informazioni, attrezzature o altre risorse di un progetto essenziali per la
corretta operatività).
Analizzando le tracce dei carichi di lavoro dai server di produzione e dai centri di
dati si osserva che i server sono per oltre il 60% del tempo al minimo, la domanda
è per lo piø stabile e prevedibile, ma i picchi possono essere bruschi e il picco di
lavoro è 1,7x-6x superiore al carico di lavoro medio; mantenendo tutti i server
attivi si spreca energia, ma il rischio di non supportare un picco improvviso di
carico deve essere ridotto al minimo.
Pertanto, oggi ci si concentra sull'uso di stati a bassa potenza (off, stand-by,
ibernazione) e sulle transizioni tra di loro, in quanto permettono un elevato
Fig.1.1 - Un data center (fonte:
11
risparmio energetico durante i periodi di carico leggero. Un aspetto chiave da
considerare è l'impatto della transizione dei server tra diversi stati di
alimentazione, in quanto può influenzare significativamente l'affidabilità a lungo
termine del sistema.
Vi è una grande quantità di lavori sul server provisioning dinamico e la gestione
energetica nei data center. Pinheiro et al. ha presentato uno schema semplice per
accendere e spegnere dinamicamente i server [4]. Muse utilizza un approccio
economico per allocare i server, dove l'offerta di servizi per le risorse è in
funzione delle prestazioni richieste, e il sistema monitora costantemente il carico e
alloca le risorse in base alla sua utilità [5]. Raghavendra et al. propone un
approccio di gestione dell'alimentazione che coordina diversi approcci individuali
per minimizzare simultaneamente potenza di picco e potenza media, e gli sprechi
dovuti all’idle [6]. Chen et al. utilizza tecniche basate sulla previsione per
l'approvvigionamento dei server e le combina col dosaggio di carico per i servizi
orientati alla connessione [7].
Un lavoro che si differenzia dai precedenti è quello proposto da B.Guenter, N.Jain
e C.Williams della Microsoft Research [8] nel corso di IEEE Infocom 2011
svoltosi a Shangai dal 10 al 15 Aprile; essi hanno integrato l’approvvigionamento
basato sulla previsione con un approccio di ottimizzazione per massimizzare il
risparmio energetico, gestire gli stati di alimentazione multipli per soddisfare la
domanda mentre si mascherano le latenze di transizione tra stati di alimentazione,
realizzando ACES.
1.2.1.1 Una soluzione per l’approvvigionamento eco-
consapevole per server: ACES
ACES è un controller automatico per l'approvvigionamento eco-
consapevole dei server, che permette ai server di soddisfare la domanda dei
carichi di lavoro, riducendo al minimo il costo energetico ed il costo di
manutenzione ed affidabilità, seguendo quindi quelle che sono le sfide del
risparmio energetico. Per bilanciare il rapporto tra la domanda non soddisfatta di
carico e di risparmio energetico, ACES gestisce gli stati di alimentazione del
server per mantenere una sufficiente capacità immediatamente disponibile per far
12
fronte ad un aumento di carico improvviso e per massimizzare il risparmio di
energia durante gli intervalli di inattività.
ACES integra la previsione di carico, i sistemi e le funzioni di gestione del carico
e l’analisi costi -benefici in tre fasi: in primo luogo, caratterizza il carico di lavoro
di ingresso e utilizza l'analisi di ciò che è avvenuto nel passato per prevedere la
domanda dei carichi di lavoro nel prossimo futuro; in secondo luogo, modella gli
schemi di alimentazione del server come un diagramma di stato di Markov, in cui
ogni stato denota un sistema di alimentazione del server ed i bordi denotano il
ritardo di transizione e il costo in dollari del consumo di energia; in terzo luogo,
utilizza le decisioni di ottimizzazione per determinare il numero di server da
tenere in ogni combinazione di risparmio energia e aziona queste decisioni usando
bilanciatori di carico per rimuovere il carico dai server che transitano da stato
attivo a uno a bassa potenza.
Guenter, Jain e Williams hanno valutato ACES su tre carichi di lavoro diversi:
Windows Live Messenger, un'applicazione di messaggistica istantanea, Windows
Azure, una piattaforma che consente la gestione di hardware in remoto e che
fornisce servizi per lo sviluppo, hosting, e la gestione di applicazioni cloud(IT in
remoto), e un cluster di calcolo condiviso(SCC), una piattaforma di calcolo
parallelo presente su larga scala nelle applicazioni della ricerca scientifica e
computazionali, di circa 1000 server.
Andando a guardare i workload in figura 1.2 delle tre tracce, notiamo la natura
altamente periodica di Messenger, la variazione di carico piccola per Azure, e una
gamma dinamica con forti picchi transitori per la traccia SCC;
in questi, come per molti altri servizi Internet, la domanda di lavoro ha
componenti periodiche di giorni, settimane e mesi, e eventualmente un lungo
trend di crescita a lungo termine. Per il provisioning del server, tuttavia, è
13
sufficiente concentrarsi sulla previsione di carico a breve termine; proprio in tal
senso gli autori valutano l’accuratezza dello schema di previsione di ACES
confrontando i valori previsti misurati ogni 30s, 15 minuti e 5 minuti, contro la
domanda effettiva, rispettivamente per il numero di server nelle tre tracce.
Utilizzano la deviazione standard σ dell'errore relativo ( | nullnullnullnullnullnull nullnullnullnullnullnullnullnull− nullnullnullnullnullnull nullnullnullnullnullnullnullnullnull| / nullnullnullnullnullnull nullnullnullnullnullnullnullnullnull) come la bontà della misura e trovano
che vale rispettivamente 0,009, 0,014, e 0,073, per i carichi di lavoro del
Messenger, Azure e SCC, quindi dei valori buoni.
Dopo aver calcolato il numero di server necessari per elaborare la domanda, il
sistema fa due operazioni: per primo, fa transitare tra diversi stati di alimentazione
i server, per soddisfare la domanda di carico mentre risparmia energia; questo
numero però è teorico, infatti in pratica il numero di server disponibili può variare
nel tempo a causa di guasti, aggiornamenti, aggiunta di nuovi server, ecc, allora il
numero di server comandato di entrare in quello stato può essere aggiornato per
riflettere l'attuale e vera situazione. Inoltre, gli operatori possono voler mantenere
sempre una capacità aggiuntiva di buffer (ad esempio, il 10% di server) oltre alla
domanda prevista per gestire gli errori. Poi, regola l'invio del carico per
distribuirlo solo tra i server rimasti attivi; ci sono diversi fattori da poter
considerare quando si decide quali sono i server da accendere o spegnere, ad
esempio il carico o cercare di equiparare i cicli di accensione in tutti i server.
Per valutare le prestazioni del provisioning con ACES gli autori lo
confrontano con l'algoritmo offline ottimale e un algoritmo “greedy”(avido,
algoritmo che cerca di ottenere una soluzione ottima da un punto di vista globale);
l'algoritmo ottimale esegue l'ottimizzazione di transizione di stato avendo la
completa conoscenza della domanda di server in tutte le fasi in futuro, mentre
l'euristica greedy considerata è quella di ordinare gli stati di alimentazione,
diminuendo l’ingombro di potenza e aumentando la latenza di transizione da uno
stato allo stato attivo.
Per calcolare il risparmio energetico, si da per scontato che quando un server gira,
consuma immediatamente, ma non fornisce capacità fino alla latenza del boot.
Questa ipotesi potrebbe sovrastimare la domanda non soddisfatta in quanto è
probabile che un server potrebbe essere disponibile in tempi piø brevi. Allo stesso
14
modo, quando un server è comandato a transitare da una modalità a bassa potenza,
consuma energia dello stato attivo durante la transizione, ma non fornisce alcuna
capacità. Questa semplificazione è conservativa in quanto il server potrebbe
arrestarsi piø rapidamente o può consumare meno energia durante il periodo di
transizione.
Il consumo di energia totale del sistema è calcolato come la somma della potenza
assorbita da un server in un dato stato di energia tante volte quanto il numero dei
server attivi in quello stato, lungo tutti gli stati di alimentazione. Gli autori
assumono che ogni server consuma rispettivamente 200W, 11W, 2W, e 0W negli
stati di alimentazione on, stand-by, ibernazione, e off. Le latenze di transizione, da
on a off, da off a on, da acceso a sospensione, da sospensione ad acceso, da acceso
ad ibernazione, e da ibernazione ad acceso sono 2 ore, 90s, 2 ore, 15s, 2 ore, e
60s. per Messenger, 60s, 1200s. 5s, 1200s. 30s, e 1200s. per Azure e 45s, 45s, 5s,
15s, 30s, e 60s per SCC.
La figura 1.3 mostra il grafico a barre che
indica il risparmio energetico giornaliero di
ACES e dell'algoritmo greedy rispetto
all'algoritmo ottimale. Si osserva che rispetto
all' ottimale, ACES permette un risparmio di
energia del 96% -99,5% mentre l'approccio
greedy permette un risparmio di energia del 23% -84% per le tracce dei tre
workload.
Per quanto riguarda l’utilizzo di potenza si ha che segue le variazioni del
workload.
I risultati mostrano quindi che il sistema è in grado di identificare
rapidamente l'assegnazione ottimale dei server agli schemi di energia in tal modo
di avere un significativo risparmio energetico, vicino all’ottimale, nel rispetto
della domanda del workload.
Fig. 1.3 - confronto del risparmio energetico
normalizzato giornaliero per ACES e algoritmi
greedy rispetto all' ottimale offline.