Techniques and tools for efficient, Qos-driven warehouse-scale computing

Davide B. Bartolini · 2015

Il warehouse-scale computing (letteralmente, computazione a scala di magazzino) e emerso, nell’ultimo decennio, come una fondamentale tecnologia di supporto per fenomeni pervasivi come Web 2.0, big data e cloud computing. I datacenter, che forniscono l’architettura fisica per il warehouse-scale computing, sono stati realizzati con componenti (server, interconnessioni, . . . ) presi in prestito dal mercato di largo consumo e gia disponibili da tempo. Nonostante cio, questi datacenter hanno aperto la strada ad un nuovo paradigma di computazione che i ricercatori stanno cercando di analizzare. In particolare, due temi emergono in maniera nuova rispetto a sistemi di computazione tradizionali. Un tema fondamentale per chi gestisce un datacenter e la sua efficienza, che si rivela fondamentale per supportare la crescita nei servizi offerti e nel valore ricavato, ad esempio tramite offerte come il cloud computing e dallo sfruttamento dell’enorme mole di dati a disposizione (big data). Inoltre, considerando i servizi di cloud computing pubblico, si presentano ulteriori sfide sia per chi gestisce l’infrastruttura che per gli utenti. In questo contesto, una preoccupazione fondamentale per gli utenti che vorrebbero spostare le proprie applicazioni su un servizio di cloud computing, sfruttando cosi i vantaggi in termini di elasticita dei costi, e che le prestazioni delle applicazioni su risorse virtualizzate sono piu complesse da analizzare e spesso impredicibili. Per questa ragione, utilizzre un servizio di cloud computing per applicazioni che necessitano di un certo livello di qualita del servizio—o, in inglese, quality of service (QoS)—e complesso e spesso rende il servizio meno efficiente a causa di allocazione troppo conservativa delle risorse. C’e una tensione tra queste due problematiche (efficienza e QoS), poiche le tecniche che possono migliorare l’efficienza (ad esempio, virtualizzazione, gestione energetica, colocamento, . . . ) hanno un impatto sulle prestazioni, spesso in modo impredicibile. Questa dissertazione attacca entrambi i lati di questa tensione e propone nuove tecniche e strumenti per tentare di risolverla. Come prima cosa, analizziamo un noto modello per il costo complessivo— in inglese, total cost of ownership (TCO)—di un datacenter e mostriamo che, per lo stato delle cose odierno, le opportunita di migliorare l’efficienza dei datacenter si trovano soprattutto nel migliorare l’efficienza dei singoli componenti l’infrastruttura, in particolare quella dei singoli server. Sulla base di questa osservazione, identifichiamo tre principali opportunita per migliorare l’efficienza: aumentare l’utilizzo dei server, ridurre il consumo di potenza statico, ridurre il consumo di potenza dinamico. La sfida e riuscire a sfruttare queste opportunita senza peggiorare la qualita del servizio offerto. Mostriamo che meccanismi e politiche tradizionali non sono adatti per raggiungere questi obiettivi nei datacenter: colocare applicazioni cause inefficienze e degrado delle prestazioni a causa di contesa su risorse condivise; gli stati di risparmio energetico profondi richiedono lunghe latenze di transizione e ripristino dello stato, degradando le prestazioni; i controllori tradizionali per il controllo di frequenza e voltaggio—in inglese, dynamic voltage and frequency scaling (DVFS)—sono in grado di ridurre la potenza attiva, ma possono causare un forte degrado prestazionali, poiche non tengono conto delle caratteristiche peculiari delle applicazioni. In seguito, analizziamo delle metriche per quantificare le prestazioni delle applicazioni eseguite nei datacenter e per definirne la qualita del servizio (QoS). Il throughput e una metrica generica per quantificare la velocita di una applicazione o il carico, ma non e sufficiente per descrivere appieno le prestazioni di applicazioni sensibili alla latenza—in inglese, latency-critical. Queste applicazioni richiedono garanzie prestazionali sulla latenza complessiva di ogni richiesta; un esempio e un servizio di ricerca in un grande database (o su internet). Le applicazioni latency-critical sono particolarmente interessanti, poiche definiscono un contesto operativo tipico dei datacenter; qui analizziamo il comportamento di cinque diverse applicazioni di questo tipo, studiando come diverse condizioni operative influenzino la latenza di servizio delle richieste. Una importante conseguenza che si ha nel definire la QoS con metriche di livello applicativo (ad esempio, throughput o latenza) e che tecniche note che ottimizzano sulla base di metriche aggregate e di basso livello non sono adeguate per garantire le prestazioni desiderate. Il contributo principale di questa dissertazione e la proposta di nuovi approcci al problema di fornire la QoS desiderata in modo efficiente, guardando a due scenari complementari. Analizziamo questi due scenari e proponiamo due metodologie e due sistemi reali (AutoPro e Rubik) che risolvono questo problema: * AutoPro si occupa del problema di garantire performance predici- bili attraverso l’allocazione automatica delle risorse in un servizio di cloud computing pubblico di tipo infrastructure-as-a-service (IaaS). AutoPro rappresenta una soluzione pratica basata su teoria del controllo per sistemi che eseguono applicazioni compute-bound e throughput-oriented. Con AutoPro, ci focalizziamo su sistemi attuali e proponiamo una soluzione che e direttamente realizzabile su datacenter moderni, senza alcun cambiamento hardware. * Con Rubik analizziamo datacenter che eseguono applicazioni latency-critical insieme ad altre applicazioni batch, ovvero senza forti requisiti prestazionali. Ci occupiamo del problema di migliorare l’efficienza del servizio riducendo i costi senza disattendere i requisiti di QoS stipulati sulle applicazioni latency-critical. Rubik e una soluzione basata su un sistema software e alcune specifiche modifiche hardware che, principalmente, permettono il supporto al partizionamento della gerarchia di memoria; questa soluzione puo essere implementata con costi trascurabili su server di prossima generazione. Sia AutoPro che Rubik dimostrano l’importanza di tre principi che suggeriamo come linee guida per lo sviluppo delle architetture e dei sistemi operativi per le prossime generazioni di datacenter: * La disponibilita, ad ogni livello del sistema, di informazioni di livello applicativo e fondamentale per un controllo efficiente. * I sistemi di controllo utilizzati per regolare parametri di sistema devono avere una solida base teorica (ad esempio, AutoPro usa la teoria del controllo e Rubik usa analisi statistica e teoria del controllo). Controllori ad-hoc basati su euristiche non generalizzano bene e spesso falliscono a causa di casi particolari patologici che sono difficili da individuare in sistemi di questa complessita. * Per supportare l’ambiente di esecuzione molto dinamico dei data- center, rispetto all’ambiente statico tipico dei cluster, i sistemi di controllo devono operare ad alta frequenza. Adattare i parametri ad grana grossa non permette di adeguarsi a cambiamenti rapidi e impone di essere molto conservativi nelle allocazioni, riducendo notevolmente l’efficienza. Risolvere completamente i problemi di garantire qualita del servizio e di operare i datacenter in modo efficiente rimane un problema di ricerca aperto e diverse tecniche ed approcci sono necessari in specifici contesti (a seconda del tipo di applicazioni, criticita dei servizi, . . . ). Questa dissertazione analizza questi problemi e propone due soluzioni pratiche per due scenari complementari.

Read the paper · More papers on PaperTik