Warehouse-scale computing, which is supported by datacenters, emerged in the last decade as a fundamental enabling technology for pervasive phenomena such as the Web 2.0, big data, and cloud computing. Despite being assembled from commodity components (servers, interconnects, ...), these datacenters opened the way to a new paradigm for mainstream computing; as researchers work on understanding this new paradigm, two important themes emerge in a new way compared to traditional systems. A major concern for datacenter operators is their efficiency and cost-effectiveness, which are crucial to supporting the growth in the services and value coming from big data and cloud computing. Additionally, public cloud computing presents further challenges for both datacenter operators and users. A major issue for users that want to bring their workloads to the cloud to take advantage of utility computing is that performance on virtualized resources is hard to understand and often unpredictable. For this reason, using public clouds for applications that need to provide a required quality of service (QoS) level is not straightforward and often leads to increased inefficiency due to conservative resource allocations. There is a tension between these two issues (efficiency and QoS), as techniques to improve efficiency (e.g., virtualization, power management, colocation, ...) impact performance, often unpredictably. This dissertation attacks both sides of this tension and proposes novel techniques and tools to help solve it, towards future efficient QoS-driven warehouse-scale computing. First, we analyze a well-known model for the total cost of ownership (TCO) of a datacenter and find that, as things stand today, opportunities to further reduce TCO, and allow datacenters to scale further, mostly lie in improvements in the efficiency of IT equipment, particularly the efficiency of servers. On this basis, there are three main opportunities to improve efficiency: increasing server utilization, reducing static power consumption, reduce dynamic power consumption. The challenge is being able to target these opportunities without hurting QoS. We show that traditional mechanisms and policies to pursue these goals are not well-suited for datacenters: colocating applications causes inefficiency and performance degradation due to contention on shared resources; deep sleep states impose high transition latencies and flush shared state, impairing performance; traditional controllers for dynamic voltage and frequency scaling (DVFS) reduce active power, but can heavily impact performance, because they are oblivious to the peculiarities of datacenter applications. Then, we analyze metrics to quantify the performance of datacenter applications and define their QoS. Throughput is a general metric to quantify rate of progress or load, but it is not enough to capture the performance of latency-critical applications, such as user-facing services, which need to provide performance guarantees on the end-to-end latency of each request. Latency-critical applications are particularly interesting, because they define an operating context that is peculiar to datacenters; we analyze the behavior of five latency-critical applications, studying how latency is affected by different operating conditions. One important consequence of defining QoS with application-level metrics is that traditional systems that optimize for aggregated, low-level metrics cannot provide this type of QoS guarantees. The main contribution of this dissertation is proposing novel approaches to the problem of achieving QoS enforcement in an efficient way in two complementary scenarios. We analyze these two scenarios and propose two methodologies and practical systems (AutoPro and Rubik) that solve this problem: * AutoPro tackles on the problem of providing predictable performance with automated resource allocation in public infrastructure-as-a-service (IaaS) cloud computing. AutoPro provides a practical solution based on a control-theoretical background for systems running compute-bound, throughput oriented applications. With AutoPro, we focus on current hardware and propose a solution that is directly deployable on modern datacenters with no hardware changes. * Rubik analyzes datacenters running latency-critical applications, along with other batch work and tackles the problem of reducing the TCO while maintaining QoS guarantees on the tail latency, thus improving efficiency. Rubik provides a solution based on a runtime system and few key hardware changes, mainly to provide partitioning of the memory hierarchy; this solution could be implemented with negligible overhead on next-generation servers. Both AutoPro and Rubik demonstrate the importance of three principles that we suggest as guidelines for the development of next-generation computer architecture and operating systems for datacenters: * Availability through the hardware/software stack of application-level information is key for effective control. * Control systems used to tune system-level knobs need to be founded on solid theoretical bases (e.g., AutoPro uses control theory, Rubik uses statistics and control theory); ad-hoc empirical controllers do not generalize well and often fail due to unpredictable pathological cases. * In order to support the dynamic execution context of datacenters, as opposed to the static runtime of traditional clusters, control systems need to operate at a high frequency; coarse-grained adaptation cannot adapt to quick changes and imposes overly conservative guardbands, leaving much on the table. Completely solving the problems of providing QoS and operating datacenters efficiently remains an open research problem, and different techniques and approaches are needed depending on the specific context (application types, public versus public clouds, criticality of the QoS requirements, ...). This dissertation analyzes these problems and provides two practical solutions for two somewhat complementary scenarios.

Il warehouse-scale computing (letteralmente, computazione a scala di magazzino) è 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 già disponibili da tempo. Nonostante ciò, 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 è 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 così i vantaggi in termini di elasticità dei costi, è che le prestazioni delle applicazioni su risorse virtualizzate sono più complesse da analizzare e spesso impredicibili. Per questa ragione, utilizzre un servizio di cloud computing per applicazioni che necessitano di un certo livello di qualità del servizio—o, in inglese, quality of service (QoS)—è complesso e spesso rende il servizio meno efficiente a causa di allocazione troppo conservativa delle risorse. C’è una tensione tra queste due problematiche (efficienza e QoS), poiché 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 opportunità 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 opportunità per migliorare l’efficienza: aumentare l’utilizzo dei server, ridurre il consumo di potenza statico, ridurre il consumo di potenza dinamico. La sfida è riuscire a sfruttare queste opportunità senza peggiorare la qualità 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, poiché 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 qualità del servizio (QoS). Il throughput è una metrica generica per quantificare la velocità di una applicazione o il carico, ma non è 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 è un servizio di ricerca in un grande database (o su internet). Le applicazioni latency-critical sono particolarmente interessanti, poiché 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) è 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 è 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 è 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 è 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 può 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 disponibilità, ad ogni livello del sistema, di informazioni di livello applicativo è 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 complessità. * 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 qualità 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, criticità dei servizi, . . . ). Questa dissertazione analizza questi problemi e propone due soluzioni pratiche per due scenari complementari.

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

BARTOLINI, DAVIDE BASILIO

Abstract

Warehouse-scale computing, which is supported by datacenters, emerged in the last decade as a fundamental enabling technology for pervasive phenomena such as the Web 2.0, big data, and cloud computing. Despite being assembled from commodity components (servers, interconnects, ...), these datacenters opened the way to a new paradigm for mainstream computing; as researchers work on understanding this new paradigm, two important themes emerge in a new way compared to traditional systems. A major concern for datacenter operators is their efficiency and cost-effectiveness, which are crucial to supporting the growth in the services and value coming from big data and cloud computing. Additionally, public cloud computing presents further challenges for both datacenter operators and users. A major issue for users that want to bring their workloads to the cloud to take advantage of utility computing is that performance on virtualized resources is hard to understand and often unpredictable. For this reason, using public clouds for applications that need to provide a required quality of service (QoS) level is not straightforward and often leads to increased inefficiency due to conservative resource allocations. There is a tension between these two issues (efficiency and QoS), as techniques to improve efficiency (e.g., virtualization, power management, colocation, ...) impact performance, often unpredictably. This dissertation attacks both sides of this tension and proposes novel techniques and tools to help solve it, towards future efficient QoS-driven warehouse-scale computing. First, we analyze a well-known model for the total cost of ownership (TCO) of a datacenter and find that, as things stand today, opportunities to further reduce TCO, and allow datacenters to scale further, mostly lie in improvements in the efficiency of IT equipment, particularly the efficiency of servers. On this basis, there are three main opportunities to improve efficiency: increasing server utilization, reducing static power consumption, reduce dynamic power consumption. The challenge is being able to target these opportunities without hurting QoS. We show that traditional mechanisms and policies to pursue these goals are not well-suited for datacenters: colocating applications causes inefficiency and performance degradation due to contention on shared resources; deep sleep states impose high transition latencies and flush shared state, impairing performance; traditional controllers for dynamic voltage and frequency scaling (DVFS) reduce active power, but can heavily impact performance, because they are oblivious to the peculiarities of datacenter applications. Then, we analyze metrics to quantify the performance of datacenter applications and define their QoS. Throughput is a general metric to quantify rate of progress or load, but it is not enough to capture the performance of latency-critical applications, such as user-facing services, which need to provide performance guarantees on the end-to-end latency of each request. Latency-critical applications are particularly interesting, because they define an operating context that is peculiar to datacenters; we analyze the behavior of five latency-critical applications, studying how latency is affected by different operating conditions. One important consequence of defining QoS with application-level metrics is that traditional systems that optimize for aggregated, low-level metrics cannot provide this type of QoS guarantees. The main contribution of this dissertation is proposing novel approaches to the problem of achieving QoS enforcement in an efficient way in two complementary scenarios. We analyze these two scenarios and propose two methodologies and practical systems (AutoPro and Rubik) that solve this problem: * AutoPro tackles on the problem of providing predictable performance with automated resource allocation in public infrastructure-as-a-service (IaaS) cloud computing. AutoPro provides a practical solution based on a control-theoretical background for systems running compute-bound, throughput oriented applications. With AutoPro, we focus on current hardware and propose a solution that is directly deployable on modern datacenters with no hardware changes. * Rubik analyzes datacenters running latency-critical applications, along with other batch work and tackles the problem of reducing the TCO while maintaining QoS guarantees on the tail latency, thus improving efficiency. Rubik provides a solution based on a runtime system and few key hardware changes, mainly to provide partitioning of the memory hierarchy; this solution could be implemented with negligible overhead on next-generation servers. Both AutoPro and Rubik demonstrate the importance of three principles that we suggest as guidelines for the development of next-generation computer architecture and operating systems for datacenters: * Availability through the hardware/software stack of application-level information is key for effective control. * Control systems used to tune system-level knobs need to be founded on solid theoretical bases (e.g., AutoPro uses control theory, Rubik uses statistics and control theory); ad-hoc empirical controllers do not generalize well and often fail due to unpredictable pathological cases. * In order to support the dynamic execution context of datacenters, as opposed to the static runtime of traditional clusters, control systems need to operate at a high frequency; coarse-grained adaptation cannot adapt to quick changes and imposes overly conservative guardbands, leaving much on the table. Completely solving the problems of providing QoS and operating datacenters efficiently remains an open research problem, and different techniques and approaches are needed depending on the specific context (application types, public versus public clouds, criticality of the QoS requirements, ...). This dissertation analyzes these problems and provides two practical solutions for two somewhat complementary scenarios.
FIORINI, CARLO ETTORE
SCIUTO, DONATELLA
16-feb-2015
Il warehouse-scale computing (letteralmente, computazione a scala di magazzino) è 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 già disponibili da tempo. Nonostante ciò, 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 è 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 così i vantaggi in termini di elasticità dei costi, è che le prestazioni delle applicazioni su risorse virtualizzate sono più complesse da analizzare e spesso impredicibili. Per questa ragione, utilizzre un servizio di cloud computing per applicazioni che necessitano di un certo livello di qualità del servizio—o, in inglese, quality of service (QoS)—è complesso e spesso rende il servizio meno efficiente a causa di allocazione troppo conservativa delle risorse. C’è una tensione tra queste due problematiche (efficienza e QoS), poiché 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 opportunità 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 opportunità per migliorare l’efficienza: aumentare l’utilizzo dei server, ridurre il consumo di potenza statico, ridurre il consumo di potenza dinamico. La sfida è riuscire a sfruttare queste opportunità senza peggiorare la qualità 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, poiché 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 qualità del servizio (QoS). Il throughput è una metrica generica per quantificare la velocità di una applicazione o il carico, ma non è 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 è un servizio di ricerca in un grande database (o su internet). Le applicazioni latency-critical sono particolarmente interessanti, poiché 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) è 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 è 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 è 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 è 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 può 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 disponibilità, ad ogni livello del sistema, di informazioni di livello applicativo è 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 complessità. * 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 qualità 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, criticità dei servizi, . . . ). Questa dissertazione analizza questi problemi e propone due soluzioni pratiche per due scenari complementari.
Tesi di dottorato
File allegati
File Dimensione Formato  
thesis-final.pdf

Open Access dal 16/01/2016

Descrizione: Dissertation
Dimensione 2.64 MB
Formato Adobe PDF
2.64 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/100464