Performance Isolation in Multi-Tenant Applications
Total Page:16
File Type:pdf, Size:1020Kb
Performance Isolation in Multi-Tenant Applications Zur Erlangung des akademischen Grades eines Doktors der Ingenieurwissenschaften von der Fakultät für Informatik des Karlsruher Instituts für Technologie (KIT) genehmigte Dissertation von Rouven Krebs aus Speyer, Deutschland Tag der mündlichen Prüfung: 26.6.2015 Erstgutachter: Prof. Dr. Samuel Kounev and Zweitgutachter: Prof. Dr. Ralf Reussner KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum der Helmholtz-Gemeinschaft www.kit.edu DOI: 10.5445/IR/1000049479 Hiermit versichere ich wahrheitsgemäß, die Dissertation selbstständig angefertigt, alle benutzten Hilfsmittel vollständig und genau angegeben und alles kenntlich gemacht zu haben, was aus Ar- beiten Anderer und eigener Veröffentlichungen unverändert oder mit Änderungen entnommen wurde. Karlsruhe, den 28.04.2015 Rouven Krebs Abstract Multi-tenancy is an approach to share one application instance among multiple customers by provid- ing each of them a dedicated view. This approach reduces the costs for service provisioning. Tenants expect to be isolated in terms of the application performance they observe, and the providers’ in- ability to offer performance guarantees is a major obstacle for potential cloud customers. A direct relation between observed performance and customer satisfaction is well documented for interactive web applications. Performance can even become critical to economic success. Providing performance isolation when sharing at the application layer is a challenge. The layers responsible for controlling resource access (e.g., operating system) are normally unaware of entities defined at the application level. Thus, these layers cannot distinguish between different tenants. Furthermore, it is hard to predict how tenant requests propagate through the multiple layers of the execution environment, down to the physical resource layer. The intended decoupling of the application from the resource controlling layers does not allow moving the resource control to the application. Nowadays, no methods exist to efficiently enforce performance isolation between tenants sharing one multi-tenant application. Furthermore, the providers know neither which characteristics of the methods are important nor which method provides the best isolation. Thus, quantifying the degree of performance isolation a system achieves is essential. Additionally, there is no feasible documented approach of how potential performance isolation methods can be implemented in an application. This thesis aims at providing performance isolation mechanisms, a methodology to quantify per- formance isolation, as well as insights and methods that support multi-tenant application providers in realizing performance isolated multi-tenant applications. Performance isolation is enforced by means of request based admission control. The degree of performance isolation is quantified by using a benchmarking approach. Its metric captures the in- fluence of an increasing workload from one tenant upon the observed performance of other tenants. To support providers in applying the correct isolation method, the solutions are evaluated using the proposed benchmarking approach. Beyond this, additional relevant aspects of the methods, e.g., their informational requirements, are identified. To implement the isolation method, a framework is considered that allows to easily add the application-specific aspects of a concrete isolation method. Finally, the results of the thesis are validated in environments motivated by a real world PaaS runtime, using representative benchmarks. In an enterprise service, it was possible to reduce one tenant’s impact upon the response time of another from 141% to 11% by applying methods pre- sented in the thesis. The benchmarking approach was additionally validated in a case study that quantified the Xen hypervisor’s isolation capabilities. v Kurzfassung Cloud Computing gewinnt im Bereich der Geschäftsanwendungen immer mehr an Bedeutung. In infrastrukturbezogenen Angeboten wird die gleiche Hardware zwischen mehreren Kunden geteilt. Hierfür werden Virtualisierungstechniken verwendet, welche jedem Kunden eine virtuelle Maschine zur Verfügung stellen. Dadurch lassen sich Ressourcen teilen und einzelnen Kunden direkt zuwei- sen. Mehrmandantenfähigkeit teilt eine Applikationsinstanz zwischen mehreren Kunden, wobei jeder seine eigene und isolierte Sicht auf die Anwendung erhält. Dies erhöht den Anteil der geteilten Ressourcen, da nicht nur die Hardware, sondern auch darüberliegende Schichten geteilt werden. Somit können Kosten weiter gesenkt werden. Trotz dieses erhöhten Anteils geteilter Ressourcen erwarten die Mandanten, bezüglich der Performance von anderen Mandanten isoliert zu sein. Die Unfähigkeit der Anwendungsanbieter Performancegarantien sicherzustellen, ist ein Hemm- nis für potentielle Kunden. Speziell im Falle interaktiver Web-Anwendungen ist der Zusammenhang von Performance und Benutzerzufriedenheit bekannt, und schlechte Performance kann den ökono- mischen Erfolg einer Anwendung verhindern. Im Fall einer geteilten Infrastruktur sind sowohl die Ressourcen, als auch die Entitäten, die von- einander getrennt werden sollen, bekannt. Performanceisolation bei einer geteilten Anwendungs- schicht zu garantieren, ist im Gegensatz dazu eine Herausforderung mit speziellen Aspekten. Die ressourcenkontrollierenden Ausführungsumgebungen, wie z.B. das Betriebssystem, haben in der Regel keine Kenntnisse über Entitäten, welche auf Ebene der Applikationsinstanz definiert sind. In der Regel ist das Mandantenkonzept jedoch nur der Anwendung oder bestenfalls der Middleware bekannt. Somit können die ressourcenkontrollierenden Schichten nicht zwischen Mandanten un- terscheiden. Desweiteren ist es schwer vorherzusagen, wie eine Anfrage durch die verschiedenen Schichten des Systems bis hin zu den Ressourcen propagiert wird. Anwendungen sind absichtlich von der Ressourcenverwaltung getrennt, um eine effiziente Entwicklung zu ermöglichen. Deswe- gen erscheint es nicht schlüssig, die Ressourcenkontrolle in die Anwendung zu integrieren. Diese Schichtendiskrepanz verhinderte bislang die Performanceisolation von Mandanten, welche sich eine Applikationsinstanz teilen. Einem Anbieter von Mehrmandantenanwendungen fehlen die Methoden, um Performanceisola- tion sicherzustellen. Desweiteren wissen die Anbieter nicht, welche Charakteristiken der Methoden wichtig wären, noch welche Methoden die beste Isolation bieten würden. Deshalb ist es essentiell, im ersten Schritt Performanceisolation quantifizieren zu können. Erschwerend kommt hinzu, dass kein umfassender Ansatz dokumentiert ist, der beschreibt, wie die Methoden zur Sicherstellung der Performanceisolation implementiert werden können. vii Diese Dissertation hat zum Ziel, Methoden zur Performanceisolation zu entwickeln, Ansätze zur Quantifizierung von Performanceisolation zu erstellen, und Wissen zu erarbeiten, das die Anbieter von interaktiven Webanwendungen befähigt, isolierte Anwendungen zu erstellen. Ein Einfluss zwischen zwei Mandanten tritt auf, wenn diese gleichzeitig im Wettbewerb um ei- ne Ressource stehen. In einer interaktiven Anwendung beeinflussen sich Mandanten somit immer dann, wenn ihre Anfragen gleichzeitig vom System bearbeitet werden. Durch Einflussnahme wann und ob eine eingehende Anfrage bearbeitet wird, lässt sich somit kontrollieren, welcher Mandant auf eine Ressource zugreifen kann. In der vorliegenden Arbeit wird Performanceisolation durch ei- ne anfragebasierte Zugangskontrolle gewährleistet. Diese basiert auf zwei Bestandteilen. Zum einen stellt ein arbeitserhaltender Scheduler sicher, dass die Anzahl der zugelassenen Anfragen pro Man- dant einem konfigurierten Verhältnis entsprechen. Zum anderen stellt eine asynchron arbeitende Optimierung sicher, dass die Verhältnisse so angepasst werden, dass möglichst alle Mandanten eine faire Zuteilung der Ressourcen erhalten. Dies beinhaltet unter anderem auch eine Erhöhung des An- teils eines Mandanten, wenn andere Mandanten ihre Performancegarantien dadurch nicht verletzen, um nicht unnötig Ressourcen brachliegen zu lassen. Die Zweiteilung erlaubt es, in kurzfristigen Zeitabständen Isolation sicherzustellen, sowie in lang- fristigen Zyklen komplexere Optimierungen vorzunehmen, welche für jede Anfrage einen zu hohen Mehraufwand bedeuten würden. Zwei konkrete, neuartige Verfahren werden in der Arbeit vorgestellt. Das erste basiert darauf, den Ressourcenbedarf einer Anfrage abzuschätzen. Dieses Wissen wird genutzt, um im Scheduler sicherzustellen, dass ein Mandant nicht mehr als den ihm zugewiesenen Anteil einer Ressource nut- zen darf. Dies erlaubt es, Mandanten effektiv zu isolieren, falls der Ressourcenbedarf pro Anfrage sich zwischen den Mandanten stark unterscheidet. Ein zweites Verfahren beobachtet die Perfor- mancedaten der Anwendung, und leitet darauf basierend ein Blackbox-Modell der Anwendung ab. Dieses wird genutzt, um mit Hilfe einer analytischen Optimierung, eine Gewichtung für ein faires Queuing zu ermitteln. Das letztere Verfahren erlaubt es, Garantien bezogen auf extern sichtbare Performanceeigenschaften zu erhalten. Zur Ermittlung der Isolationsqualität wird ein benchmarkorientierter Ansatz vorgestellt. Dieser basiert auf der Separierung der Mandanten in zwei Gruppen. Die störende Gruppe, welche die ma- ximal erlaubte Last überschreitet, und der rechtschaffenden Gruppe von Mandanten, welche die erlaubte Last nicht überschreiten. Mit dieser Grundlage lassen sich zwei Typen von Metriken erstellen. Zum einen wird in der