Automated Experiments for Deriving Performance-relevant Properties of Software Execution Environments

Michael Hauck
2014
In software engineering, considering quality attributes such as software performance plays a crucial role. Approaches such as Software Performance Engineering (SPE) aim at systematically reflecting software performance during the whole software life-cycle. Using model-based performance analyses, predictions on the software performance, e.g. the expected software response times or the resource utilization, can already be conducted during design time. The software execution environment heavily
more » ... luences the performance of a software and thus has to be reflected in performance analysis. With the increased complexity of the execution environment (e.g. due to the introduction of virtualized environments or new operating system schedulers), performance analysis approaches have to be extended in order to continue to yield precise prediction results. Existing performance prediction approaches usually abstract from most parts of the execution environment or do not deal with the problem of quantifying properties of the execution environment for performance prediction models. Hence, detecting execution environment properties and integrating such properties into performance analyses is a manual, error-prone task that requires expert knowledge on the execution environment. The scientific contribution of this thesis is a novel approach for detecting performance-relevant properties of the software execution environment. These properties are automatically detected using predefined experiments and integrated into performance prediction tools. To detect the properties, performance experiments are conducted on the target platform. The experiments issue predefined load patterns on the system and observe certain performance metrics. Based on the measured results, performance-relevant execution environment properties are then derived. As the approach is solely measurement-based, it does not require access to low-level details of the execution environment. For predefining experiments, this thesis introduces a metamodel for experiment specification. Using a model-based approach, experiment models can be directly transformed into executable experiments on the target platform. The metamodel facilitates the specification of experiment execution logic and the corresponding load patterns. In addition, the metamodel and the transformation encapsulate domain knowledge on experiment design, such as the execution of microbenchmarks or the automated termination of experiments once statistically sufficient measurements have been collected. To validate the approach, different experiments have been developed in the scope of this thesis. The experiments aim at detecting performance-relevant properties of different parts of the execution environment, i.e. CPU, OS scheduling, and virtualization properties. The derived properties include for example the timeslice length of the OS scheduler or the used scheduling strategy for loadbalancing, as well as different kinds of resource demand overhead introduced by a virtualization i platform. The experiments are technology-independent and thus applicable to a multitude of target platforms. The experiments presented in this thesis have been integrated into the Palladio Component Model (PCM), a model-based software performance analysis approach. By reflecting the derived execution environment properties in PCM, performance predictions can be improved. The experiments have been validated on different platforms and in different case studies: The first case study is based on a POV-Ray system that is used for ray tracing. The case study shows that reflecting the derived OS scheduling properties can lead to an increased prediction accuracy of software response times. In two other case studies, the experiments for detecting virtualization properties have been executed to enhance the performance prediction of two different systems: the TPC-W benchmark, an e-commerce platform, and the RUBiS benchmark, an online auction platform. In both cases, reflecting the experimentally derived properties yields an increased prediction accuracy compared to predictions where the derived details of the execution environment have been neglected. By automatically deriving execution environment properties and integrating these properties into performance prediction approaches, performance predictions at design time are facilitated where details of the execution environment do not have to be derived and included manually. Software architects can conduct analyses without having to deal with identification of execution environment properties and the integration of such properties into performance analysis. In addition, since the experiments are automated, they can be repeated with little overhead, for example if parts of the execution environment have been changed and should be reflected in software performance analysis. ii Kurzfassung In der Software-Technik spielt die Berücksichtigung von Qualitätsattributen wie der Software-Performance eine wichtige Rolle. So wird im Software Performance Engineering (SPE) eine systematische Betrachtung der Performance über den gesamten Software-Lebenszyklus hinweg angestrebt. Modell-basierte Performance-Analysen ermöglichen bereits zur Entwurfszeit Aussagen über Antwortzeitverhalten und Ressourcenauslastung. Da die Performance eines Software-Systems stark von der Ausführungsumgebung beeinflusst wird, muss diese in Performance-Analysen mit einbezogen werden. Mit zunehmender Komplexität der Ausführungsumgebung (z.B. durch den Einsatz von Virtualisierungsplattformen oder neuer Betriebssystem-Scheduler) müssen Performance-Analysen erweitert werden, um nach wie vor genaue Vorhersagen zu ermöglichen. Existierende Ansätze zur Performance-Vorhersage abstrahieren meist von Teilen der Ausführungsumgebung oder befassen sich nicht mit der Quantifizierung von Plattformeigenschaften in Performance-Modelle. Das Erkennen von Plattformeigenschaften und die Integration dieser Eigenschaften in Performance-Analysen ist daher aufwändig, fehleranfällig, und erfordert Expertenwissen. Der wissenschaftliche Beitrag dieser Arbeit ist ein neuer Ansatz, um performance-relevante Eigenschaften der Ausführungsumgebung automatisiert durch vordefinierte Experimente zu ermitteln und diese Eigenschaften in Werkzeuge zur Performance-Vorhersage zu integrieren. Zur Ableitung von Performance-Eigenschaften werden Experimente auf der Zielplattform ausgeführt. Diese Experimente erzeugen dann eine vordefinierte Last auf dem System und beobachten die dadurch entstehenden Performance-Auswirkungen. Anschließend werden, basierend auf den Messresultaten, performance-relevante Eigenschaften für die Performance-Vorhersage abgeleitet. Interna der Ausführungsplattform müssen zur Anwendung des Ansatzes nicht bekannt sein, da dieser rein messbasiert vorgeht. Um Experimente vorzudefinieren, wurde ein Metamodell für die Experimentspezifikation entwickelt. Experimentmodelle können so direkt in ausführbare Experimentinstanzen auf der Zielplattform transformiert werden. Das Metamodell ermöglicht die Spezifizierung von Experimentausführungslogik und Lastmustern. In dem Metamodell und der Transformation werden außerdem Details zur Experimentdurchführung gekapselt, wie z.B. die Ausführung von Mikrobenchmarks, oder automatische Abbruchkriterien nach Erreichen statistisch robuster Messwerte. Zur Validierung des Ansatzes wurden im Rahmen der Arbeit verschiedene Experimente entwickelt, die eine automatische Ableitung verschiedener Eigenschaften der Ausführungsumgebung ermöglichen. Im Mittelpunkt standen hierbei CPU-und Betriebssystem-Eigenschaften, sowie Eigenschaften der Virtualisierungsplattform. Eigenschaften des Betriebssystems umfassen z.B. die Größe iii der Scheduler-Zeitscheiben oder die eingesetzte Strategie zur Lastverteilung auf mehrere Prozessorkerne. Die Experimente zur Ableitung von Eigenschaften der Virtualisierungsplattformen zielen unter vor allem darauf ab, den durch die Virtualisierungsschicht verursachten Overhead zu quantifizieren. Die Experimente sind plattformunabhängig und können dadurch auf einer Vielzahl von Zielplattformen eingesetzt werden. Die in dieser Arbeit entwickelten Experimente wurden in das Palladio-Komponentenmodell, ein Ansatz zur modellbasierten Software-Performance-Vorhersage, integriert und ermöglichen so eine erweiterte Performance-Vorhersage unter Berücksichtigung der zusätzlichen Plattformeigenschaften. Die Experimente wurden auf mehreren Plattformen anhand verschiedener Fallstudien validiert: Die erste Fallstudie basiert auf einem POV-Ray-System zur Berechnung von 3D-Grafiken. Hier konnte gezeigt werden, dass die Berücksichtigung von Eigenschaften des Betriebssystem-Schedulers zu verbesserter Vorhersagegenauigkeit von Antwortzeiten führt. In zwei weiteren Fallstudien wurden die Experimente zur Ableitung von Virtualisierungseigenschaften durchgeführt und in die Performance-Vorhersage für den TPC-W-Benchmark, eine E-Commerce-Plattform, sowie den RUBiS-Benchmark, eine Online-Auktion-Plattform, integriert. Auch hier ergab eine Berücksichtigung der Experimente eine Verbesserung der Vorhersagegenauigkeit gegenüber einer Vorhersage unter Vernachlässigung der Ausführungsplattform. Durch die automatisierte Ableitung von Parametern der Ausführungsplattform und Integration in Performance-Vorhersage-Werkzeuge werden so entwurfsnahe Vorhersagen möglich, ohne dass Details der Plattform manuell erhoben und berücksichtigt werden müssen. So können Software-Architekten die Analysen durchführen, ohne Fachkenntnisse zur Experimentdurchführung und der zugehörigen Performance-Modellierung besitzen zu müssen. Außerdem lassen sich die Experimente mit wenig Aufwand erneut durchführen, wenn sich z.B. Teile der Ausführungsplattform ändern und diese Änderungen in der Software-Performance-Vorhersage berücksichtigt werden sollen. iv This thesis would not have been possible without the great support of many people. First, I want to thank my two supervisors Ralf Reussner and Stefan Tai. Ralf has been a great advisor at all times and provided me with invaluable support. I always enjoyed working in his research group with its excellent working atmosphere. With Stefan I had great discussions concerning my PhD topic (and IT in general). His fruitful comments and insights really helped me to shape the topic and complete the thesis. Furthermore, I am deeply thankful to Jens Happe and Dennis Westermann for the time we spent together doing research and for their feedback in the last years. Jens has supported me from the beginning in finding and shaping the topic and has always made time for discussing problems. I want to thank Dennis for the great discussions we had and the feedback he gave me when proofreading the complete (sic!) thesis. I am looking forward to the next adventures we are going to take. From the research group of SDQ and FZI, I want to thank my current and former colleagues I had the pleasure to work with. In alphabetical order:
doi:10.5445/ksp/1000037233 fatcat:s6uuncx4pffg7j3azl7mpkjlje