Stima e benchmarking energetico del software applicativo
A cura di:
Marco Bessi, Eugenio Capra, Chiara Francalanci – Politecnico di Milano, Dipartimento di Elettronica e Informazione
Il consumo energetico del software applicativo
Negli ultimi anni il consumo energetico dell’It, comunemente identificato come Green It, ha attratto l’attenzione sia del mondo accademico sia della comunità industriale.
Il Green It pone delle sfide alla ricerca su vari livelli, tra cui il design dell’hardware, dell’infrastruttura dei datacenter, dell’efficienza, della gestione e delle pratiche d’uso dei client. Non bisogna tuttavia dimenticare che nonostante sia l’hardware ad essere fisicamente responsabile del consumo di energia, i dispositivi elettronici non fanno altro che eseguire le operazioni elementari dettate dal software.
Il ruolo del software applicativo non può quindi essere trascurato. Il software è la prima causa di consumo, dato che esso guida le operazioni eseguite dal processore, e quindi influenza il consumo di tutti i livelli infrastrutturali sovrastanti.
Prove sperimentali eseguite presso il Politecnico di Milano hanno dimostrato che applicazioni Mis (Management Information Systems) con gli stessi requisiti funzionali possono consumare energia in modo significativamente diverso, anche fino al 145%. Inoltre il software applicativo incide sul consumo energetico del server fino al 70% in più rispetto al consumo in stato di idle.
Per comprendere l’importanza del software nell’ambito del Green It si può fare un paragone automobilistico e pensare a come si può fare per consumare meno benzina per andare da Milano a Torino.
La prima soluzione che viene in mente è quella di utilizzare un’automobile che fa tanti km con un litro di benzina, che nel mondo informatico equivale ad utilizzare un server efficiente.
Poi si sceglierà il mezzo più consono al numero di viaggiatori, per es. se si è in 6 persone si utilizzerà un pulmino anziché 6 vetture. Questo equivale al concetto della virtualizzazione per mettere a fattor comune i costi fissi.
Ci sono però altre due leve utilizzabili: scegliere la velocità di crociera che minimizza il consumo (tipicamente differente dalla velocità massima) e ottimizzare il percorso.
Queste due ottimizzazioni in ambito informatico rientrano nel dominio del Green Software.
Prima ancora di studiare come ottimizzare il software applicativo dal punto di vista dell’efficienza energetica, è però necessario definire una metodologia per misurare questa efficienza e più in generale il consumo di energia indotto da un’applicazione. Questa metrica può infatti andare ad arricchire l’insieme di parametri di merito in base al quale vengono valutate diverse applicazioni, sia in caso di selezione di offerte da parte dei fornitori, sia in caso di sviluppo inhouse.
Nonostante il mercato sia ancora piuttosto acerbo rispetto a queste tematiche, occorre notare che alcune grandi aziende stanno mostrando un interesse sempre crescente per questi aspetti e stanno cercando di capire come valutare i propri gruppi interni di sviluppo e i propri fornitori anche in base a questi parametri. Scegliere il software anche in base ai parametri di efficienza energetica può infatti avere un impatto ambientale ed economico significativo.
È vero che gran parte degli interventi per l’efficienza energetica dei data center si concentrano sulla parte infrastrutturale (per es. realizzare impianti di condizionamento free-cooling porta a risparmi molto significativi), ma anche il software può giocare un ruolo importante.
Una prima analisi dei software transazionali, come gli Erp, ha messo infatti in luce come differenze di efficienza energetica del 30% a parità di funzionalità siano all’ordine del giorno. Queste differenze di consumo a livello server vengono poi amplificate dall’infrastruttura sovrastante (se i server consumano meno scalderanno meno, quindi si potrà raffreddare meno) e si possono tradurre in un risparmio del 15% sul consumo complessivo del data center (si veda la Figura 1).
Se si considera un’applicazione estensiva ad un data center di grande dimensioni che a regime consuma 30MW, il risparmio annuale conseguente ad una migliore scelta del software potrebbe arrivare a 44 MWh, corrispondenti a 5,2 M€ e a 24.000 tonnellate di CO2, vale a dire la quantità mediamente assorbita da 1,2 milioni di alberi. A queste considerazioni occorre aggiungere che in generale un’applicazione che consuma meno energia è un’applicazione che consuma meno risorse, quindi che genera meno costi, al di là degli specifici costi energetici. Inoltre, è ragionevole ipotizzare che software più efficiente dal punto di vista energetico sia software di qualità più elevata.
Come misurare il consumo energetico del software
Il consumo energetico indotto da un’applicazione può essere misurato tramite kit sperimentali di acquisizione dei consumi (ad esempio con pinze amperometriche connesse direttamente al server, o attraverso demoni di sistema forniti dai più recenti server) che misurano il consumo di assorbimento di potenza aggiuntivo rispetto allo stato di idle dell’infrastruttura su cui sono eseguiti i carichi di lavoro del software da misurare.
Questo tipo di approccio presenta due problemi principali:
1) le metriche ottenute sono strettamente legate allo specifico hardware dell’infrastruttura su cui sono stati condotti i test;
2) le misure richiedono tanto tempo e strumenti specifici che normalmente un’azienda dovrebbe acquisire ad hoc.
Inoltre tali misure non sono realisticamente effettuabili nei data center di grandi organizzazioni, dove il livello di virtualizzazione è elevato.
Inoltre per grandi organizzazioni le cui applicazioni lavorano su grandi datacenter, campagne di misura estensivi che direttamente misurano il consumo energetico delle loro applicazioni non sono di solito realisticamente possibili.
Per questi motivi, il gruppo di Sistemi Informativi del Politecnico di Milano, in collaborazione con una grande azienda del settore oil&gas ha sviluppato una nuova metodologia che permette di misurare in modo molto più semplice il consumo di energia indotto dalle applicazioni software, in particolare disaccoppiando il consumo di risorse computazionali da parte di un’applicazione dal costo energetico unitario delle risorse utilizzate.
In questo modo è possibile stimare l’efficienza energetica delle applicazioni software indipendentemente dall’infrastruttura hardware su cui sono fatti i test. Riprendendo il paragone automobilistico, il consumo delle risorse di un’applicazione può corrispondere al percorso che connette due punti, mentre il consumo energetico delle risorse hardware può corrispondere ai litri di benzina consumato dalla macchina per kilometro.
L’utilizzo delle risorse di un’applicazione è stato modellato su tre componenti principali: il consumo di Cpu per elaborare i dati, l’uso del database per salvarli, e l’uso della rete per comunicare con altre unità computazionali.
Le misure sono sempre riferite all’esecuzione di specifici carichi di lavoro, ad esempio per transazioni Erp. Dai risultati sperimentali, che saranno descritti in seguito, è emerso che per applicazioni transazionali la componente predominante per la determinazione del consumo è la Cpu, per cui le altre due sono state tralasciate.
La metodologia prevede da un lato la misura dell’utilizzo della Cpu durante l’esecuzione della transazione (parte destra della Figura 2), e dall’altra la misura della potenza assorbita dalla Cpu a seconda del suo utilizzo (parte sinistra della Figura 2).
Il prodotto di queste due componenti, che possono essere misurati in modo separato, permette di stimare l’assorbimento di potenza di un’applicazione su di una specifica infrastruttura. È inoltre possibile ricavare un unico valore, γ, che sintetizza il consumo di risorse hardware necessarie per l’esecuzione di quella particolare transazione.
Tale valore tiene conto di diversi fattori quali la frequenza del processore, il numero di utenti e la dimensione dei database utilizzati. La metrica γ rappresenta quindi il consumo di risorse necessario ad un’applicazione per eseguire una determinata transazione, indipendentemente dall’infrastruttura hardware. Questo valore permette quindi un confronto tra applicazioni diverse.
Metodologia per il benchmarking energetico
La metodologia descritta precedentemente permette di stimare il consumo di risorse e il conseguente consumo di energia di un applicativo software e, più specificatamente, di una transazione software.
Esistono diverse situazioni in cui può essere utile valutare l’efficienza energetica di un’applicazione software per confrontarla con altre applicazioni o transazioni con le stesse caratteristiche funzionali.
La metrica γ può essere utilizzata per definire dei benchmark di consumo energetico per tipologia di transazione, in quanto permette di confrontare il consumo di risorse computazionali necessari ad applicazioni diverse per eseguire determinate transazioni. Un primo utilizzo della metrica consiste per esempio nel confrontare tra loro applicazioni diverse (per es. Erp di diversi produttori) rispetto all’esecuzione di una stessa transazione (per es. l’emissione di una fattura).
Laddove sia possibile raccogliere misure per un campione sufficientemente ampio di applicazioni, è possibile definire delle classi di efficienza relativamente al valore medio del campione.
Un meccanismo analogo è impiegato dal ben noto consorzio EnergyStar che attribuisce l’etichetta di efficienza energetica ai dispositivi hardware (per es. monitor, stampanti, pc) che appartengono al 20% dei dispositivi più efficienti della propria categoria.
Alternativamente, la metrica γ può essere utilizzata per confrontare l’onerosità computazionale di diverse transazioni (e relativi processi di business) nei confronti dell’applicazione installata in azienda. Questo permette di classificare le diverse transazioni e di effettuare confronti per classi di transazioni funzionalmente simili.
Validazione empirica: il ciclo di procurement su Sap
La metodologia è stata validata in un caso di studio del reale. In particolare è stata applicata alle transazioni Sap del ciclo di procurement di un’azienda del settore oil&gas. In particolare sono state selezionate le 3 delle transazioni più utilizzate del ciclo di procurement, rappresentato nella Figura 3, e altre 4 transazioni riferite ad altri processi di business, ma caratterizzate da un intensivo utilizzo di risorse.
Sono stati quindi definiti dei carichi di lavoro automatizzati per sollecitare il sistema di test ad eseguire le transazioni analizzate.
La potenza reale assorbita dai server è stata fisicamente misurata tramite un sistema embedded the acquisisce i valori di potenza ogni 10 secondi. La misurazione di queste metriche energetiche può essere molto dispendiosa in termini di tempo uomo e di tempo macchina. Infatti, la misura delle metriche energetiche necessita che nessun altro software sia eseguito in contemporanea sulle macchine su cui sono eseguiti i test per evitare interferenze sulle misure ottenute.
In più, l’infrastruttura necessaria per le misure fisiche di assorbimento di potenza è costosa e deve essere installata e configurata specificatamente per ogni macchina. Infine, i valori ottenuti sono inevitabilmente influenzati dall’infrastruttura hardware usata e può essere difficilmente correlata all’efficienza energetica del software.
Per queste motivazioni, la metodologia di stima sviluppata è basata sull’uso delle risorse hardware come proxy rispetto al consumo energetico. Misurare l’uso delle risorse in un sistema infatti è di minor impatto, sia dal punto di vista temporale sia economico, perché può essere fatto tramite tool software che valutano il carico della macchina, largamente diffusi in contesti aziendali per il testing delle applicazioni. Questo permette di profilare le applicazioni in una test-farm prima di essere installate sui server di produzione. Per validarla empiricamente la metodologia è stata applicata all’insieme di transazioni Sap precedentemente descritto, stimandone il consumo di energia. Allo stesso tempo è stato misurato il consumo effettivo di energia tramite l’infrastruttura di misura fisica.
Nella Tabella 1 vengono riassunti i risultati della campagna sperimentale. La metodologia stima i consumi energetici delle transazioni testate a meno di un errore medio del 2,6%, perfettamente accettabile in un contesto aziendale.
Questo risultato conferma inoltre che il processore è il principale responsabile per il consumo di energia per il software, mentre database e rete contribuiscono solo al consumo di potenza di idle e quindi possono essere trascurati dalla metodologia di stima. I dati raccolti possono essere utilizzati per esemplificare la metodologia di benchmarking.
Le transazioni analizzate sono molto usate nei processi di business dell’organizzazione in esame, e sono paragonabili per contenuto funzionale.
La Figura 4 mostra i valori di γ, cioè del consumo di risorse, per un sottoinsieme delle transazioni analizzate. Le linee tratteggiate indicano invece dei possibili valori di soglia per la definizione di diverse classi di efficienza energetica, basati sulla distribuzione statistica dei valori misurati.
Conclusioni
La metodologia presentata permette di stimare il consumo energetico indotto dal software applicativo misurandone il consumo di risorse computazionali, indipendentemente dall’infrastruttura hardware su cui è eseguito.
Questa metodologia è stata validata su un set di transazioni comunemente usate in una grande multinazionale con un errore molto basso. La metodologia sviluppata permette di confrontare il comportamento energetico di diverse applicazioni software, e quindi fornisce ulteriori parametri di qualità per valutare soluzioni di mercato e le offerte di fornitori software. Inoltre potrebbe rivelarsi un valido strumento aggiuntivo per valutare l’operato dei gruppi di sviluppo interni o dei system integrator, che per esempio personalizzano le transazioni di Erp standard sulla base delle peculiarità dei processi aziendali.
Mentre per una grande azienda cambiare sistema Erp potrebbe comportare costi diretti e indiretti molto elevati, e quindi risultare infattibile, controllare e ottimizzare l’operato dei system integrator potrebbe rivelarsi una leva efficace per ridurre i costi operativi.
La personalizzazione dei sistemi Erp è infatti spesso causa di perdite di efficienza significative. La metodologia può essere applicata, inoltre, per ripartire tra le varie business unit i costi di un’infrastruttura It organizzata secondo il modello del cloud privato aziendale. I modelli di accounting attuali (applicati sia per la ripartizione dei costi interni nel caso di data center in house, o per il pricing nel caso di data center in hosting) sono principalmente basati su lo spazio occupato dai server o sul numero di utenti che utilizzano una specifica applicazione, senza considerare l’effettivo uso di risorse da parte di un’applicazione e quindi dei relativi costi.
Considerando che in Italia il costo dell’energia elettrica può pesare fino al 20% sui costi operativi di un data center (Idc, 2008), un nuovo modello di monitoraggio dei consumi potrebbe introdurre una più equa ripartizione dei costi di utilizzo di un data center in base al suo effettivo utilizzo. Questi vantaggi acquisiscono ancora più importanza se applicati al paradigma del cloud computing, sia privato che pubblico.
Ad esempio, i fornitori di servizi cloud potrebbero tenere conto del consumo di energia indotto dalle transazioni eseguite sui propri server nel pricing dei propri servizi. Potrebbe inoltre essere d’interesse applicare la metodologia per stimare il consumo di risorse It di un particolare processo di business, per il trattamento di un determinato documento, o delle transazioni utilizzate da un determinato profilo utente. In aggiunta, i valori di consumo per diverse applicazioni e transazioni rilevati in contesti aziendali diversi permetteranno di definire benchmark di mercato e di confrontare tra loro diverse organizzazioni dal punto di vista dell’efficienza energetica del software applicativo. Mentre esistono diverse iniziative di benchmarking dell’efficienza energetica di dispositivi, dagli elettrodomestici agli strumenti Ict come computer, monitor e stampanti, non vi sono ancora iniziative analoghe in ambito software.
I vantaggi derivanti da queste iniziative (per es. l’Energy Star) sono molteplici, primi fra tutti l’introduzione di etichettature di merito e la promozione di accordi da parte dei fornitori per offrire prodotti e servizi più compatibili con l’ambiente. Le etichette ambientali sono uno strumento prezioso in mano al consumatore, oppure al personale degli uffici acquisti nel caso di imprese, per poter valutare in modo equo i prodotti e i servizi che si acquisiscono senza possedere competenze tecniche avanzate e senza dover effettuare costose prove di qualificazione. Un’etichettatura energetica del software applicativo, sia essa applicata ai pacchetti venduti dalle software house, oppure ai servizi di integrazione e personalizzazione offerti da altri attori presenti sul mercato, permetterebbe una scelta più responsabile ed una valutazione più completa dei propri fornitori, senza per questo volersi sostituire agli altri criteri di merito già oggi adottati.
La metodologia qui presentata permette di stimare in modo efficiente e veloce il consumo di energia degli applicativi e costituisce quindi il primo passo verso tali tipologie di iniziative.
articolo, benchmarking, Chiara Francalanci, cost saving, costi, efficienza, energia, energy management, EnergyStar, erp, Eugenio Capra, green, information technology, Marco Bessi, oil&gas, software, tecnologie