palanetwork.org Il risparmio energetico su Linux Linus Torvalds ha fatto il punto sull’evoluzione della gestione energetica del sistema operativo Linux: “questo e’ un campo in cui eravamo piuttosto scarsi, qualche anno fa. Il costruire le infrastrutture necessarie ha preso molto tempo ma ora siamo finalmente al punto in cui la maggior parte del lavoro e’ stata fatta." Arjan van de Ven, che per molti anni e’ stato kernel programmer e ora lavora ad Intel, ha quantificato il risparmio ottenuto : ” Quello che vediamo nei nostri laboratori oggi e’ che Linux montato sui portatili consuma dal 15 al 25% meno energia in idle rispetto a 3 mesi fa.” Queste due affermazioni manifestano l'attenzione che il sistema operativo libero ha posto negli ultimi anni al risparmio energetico sia dal lato kernel quindi gestione delle periferiche, sia dal lato userspace con applicazioni meno avide di risorse. Questo grafico mostra l'andamento delle prestazioni di potenza del kernel. Tanto per citare un esempio, nel kernel è stata migliorata la gestione dei cicli di CPU, i kernel Linux più vecchi utilizzavano un timer con una frequenza di 100Hz (100 eventi timer al secondo o un evento ogni 10 ms) mentre i nuovi kernel usano un valore di 250Hz (250 eventi al secondo o di un evento ogni 4 ms) o 1000Hz (1000 eventi al secondo o un evento ogni 1ms). Questo evento timer è spesso chiamato “il timer tick”. Il timer tick è semplice nel suo design, ma ha un serio inconveniente: il tick accade periodicamente indipendentemente dallo stato del processore, che sia inattivo o occupato. Se il processore è inattivo deve svegliarsi dal suo stato di sonno che risparmia energia ogni 1, 4 o 10 millisecondi. Questo costa un po’ di energia diminuendo la durata della batteria nei laptop e provocando un inutile consumo di energia nei server. Con “tickless idle” il kernel di Linux ha eliminato questo timer periodico quando la CPU è inattiva. Questo permette alla CPU di rimanere in uno stato di risparmio energetico per un periodo di tempo più lungo, riducendo il consumo complessivo di energia del sistema. http://palanetwork.org 0 Generata: 15 March, 2017, 19:15 palanetwork.org Inoltre le nuove distribuzioni linux operano una personalizzazione dei parametri del kernel per dischi, rete, gestione della memoria virtuale,sospensione del polling per USB e ISA oltre che avere impostazioni poco onerose in termini di energia per quanto riguarda la richiesta di IO. Le impostazioni cambiano di molto a seconda che si stia trattando di un server sotto alto carico di lavoro o netbook/notebook su batteria: per un uso server su openSUSE è consigliato PM-PROFILER, un gestore appartenente al pacchetto pm-tools/utils mentre per dispositivi client , specialmente netbook/notebook, è consigliato laptop-mode-tools uno strumento che offre una ampia gamma di impostazioni da usare per aumentare il risparmio energetico. Come sempre il sistema operativo libero permette ampie modifiche e ottimizzazioni anche in termini di risparmio energetico, è possibile mettere mano a qualsiasi parametro del sistema e utilizzando appositi tool come POWERTOP di Intel, ma anche strumenti quali sar, sadf, mpstat, iostat, nfsiostat, cifsiostat dell'utility SYSSTAT si possono eseguire ulteriori analisi delle risorse e risulta molto facile risicare ancora fette di risparmio in tutti gli ambiti di lavoro. Ultimamente un tool grafico chiamato Jupiter offre integrazione al desktop per il controllo di molti componenti del sistema operativo, dalla cpu ad altri parametri del kernel per vari device e permette di intervenire graficamente su queste opzioni: il tool è gratuito ed anche se è praticamente privo di documentazione si dimostra molto efficace. Qui sotto è illustrata una ottimizzazione completa tratta dal vecchio sito Intel -> LessWatts.org : si tratta di un laptop con processore 2 GHz Intel® Core™ 2 Duo e scheda grafica Intel 965 Express GM integrated graphics con un 1 Gb di RAM su cui sono state messe in atto varie ottimizzazioni e come vedete si può fare molto ottimizzando le opzioni del kernel ed altri parametri. http://palanetwork.org 0 Generata: 15 March, 2017, 19:15