PerfBoost

Performance Engineering von verteilten und eingebetteten Systemen

Kompetenzfeld Fahrzeugmechatronik
Prof. Dr. rer. nat. Christian Facchi
Dipl.-Inf. (FH) Markus Meyer

Telefon: (0841) 9348-365
christian.facchi@_we_dont_like_spam_haw-ingolstadt.de

Arbeitsgemeinschaft industrieller Forschungsvereinigungen e.V. (AiF)

Problemstellung:

Performance, im Sinne von Laufzeit, stellt eine zentrale Anforderung an die Qualität von softwareintensiven Systemen dar. Da viele Softwareprojekte auf Grund der mangelnden Performance scheitern, kommt dem Performance Engineering eine große Bedeutung zu. Hierbei treten häufig Schwierigkeiten, beispielsweise durch eine ungenaue Aufwandsschätzung oder fehlende Kosten-Nutzen-Analyse, auf. Durch den Einsatz von Dynamic Performance Stubs [1] wird das Performance Engineering unterstützt und eine zielgerichtete Optimierung des Systems ermöglicht.

Verteilte Systeme werden als eine Menge unabhängiger Computer definiert, die dem Benutzer als ein einziges System erscheinen.  Wie auch für andere Computersysteme stellt die Laufzeit von Programmen (Performance) einen wichtigen Aspekt für die Entwicklung und den Betrieb verteilter Systeme dar. Die große Anzahl an verschiedenen Rechnerarchitekturen und die Art wie diese miteinander kommunizieren, ermöglicht eine Vielfalt von verschiedenen Arten von verteilten Systemen. Dies erschwert das Performance Engineering zusätzlich, so dass sich die Analyse und die Behebung von Performance Problemen als komplexe Aufgabe herausstellen.

In diesem Forschungsprojekt sollen die Ergebnisse vorangegangener Forschungen im Bereich der Dynamic Performance Stubs (Projekt: PerfOpt) auf verteilte Systeme und Virtualisierung sowie auf eingebettete Systeme erweitert werden. In einem ersten Arbeitspaket wird die Erweiterung auf verteilte Systeme und Virtualisierung untersucht.

Forschungsvorhaben

Im Rahmen dieses Forschungsprojekts werden Methodiken zur Analyse von Performanceproblemen und zur Abschätzung des vorhandenen Optimierungspotentials bei verteilten Systemen erstellt. Das Projekt soll eine Reihe von systematischen Tests zur Verfügung stellen, mit denen es dem Entwickler ermöglicht wird, abhängig vom gegebenen verteilten System, eine zielgerichtete Performance Analyse durchzuführen.

Die erstellten Vorgehensweisen helfen, versteckte Flaschenhälse im System aufzudecken und dessen Optimierungspotential zu ermitteln. Des Weiteren wird der Einfluss der Interprozesskommunikation (IPC) auf das Verhalten des gesamten Systems evaluiert.

Lösungsansatz

Im Rahmen einer systematischen Bearbeitung, wird das Feld der verteilten Systeme gemäß ihrer Architektur aufgeteilt. Es wird zwischen Multiprozessor- und Multicomputersystemen unterschieden.  Darauf folgt abschließend die Überführung und Anwendung der Ergebnisse auf den Bereich der Virtualisierung.

Im Bereich der Multiprozessorsysteme werden die bereits eingeführten Methodiken der Dynamic Performance Stubs angewandt und erweitert, um eine Vielzahl von Untersuchungsmöglichkeiten bereitzustellen. So können CPU Stubs verwendet werden um Synchronisationszeitpunkte und Abhängigkeiten von Prozessen zu identifizieren [2], indem die von einem Prozess erzeugte Rechenlast minimiert wird und somit das maximal mögliche Optimierungspotential des Moduls bestimmt wird. Mit dieser Vorgehensweise können auch bisher versteckte Engpässe des Systems aufgedeckt werden.

Auch die Untersuchung der Verteilung der Prozessorlast soll durch das gezielte Zuweisen von Prozessen an Rechenkerne ermöglicht werden, um damit eine möglichst optimale Lastverteilung in den Multiprozessorsystemen zu erreichen.

Im Bereich der Multicomputersysteme entsteht durch die Kommunikation der einzelnen Computer untereinander eine weitere mögliche Quelle von Performance Problemen. Um die Auswirkungen des Netzwerkverkehrs auf die Leistung des gesamten verteilten Systems zu untersuchen, wird in diesem Teil der Forschung das Konzept der Network Stubs eingeführt. Diese werden verwendet um zusätzlich zu den bereits bekannten Vorgehensweisen die wesentlichen Netzwerkmetriken zu emulieren und somit die Last des Netzwerkes zu simulieren.

Durch die Portierung der gewonnen Erkenntnisse auf Virtualisierungsumgebungen erschließt sich den Dynamic Performance Stubs ein weiterer großer Bereich an Anwendungsmöglichkeiten. Hierbei steht der Einsatz der Methodiken im Bereich der Java Virtual Machine im Fokus.

Referenzen

[1] Peter Trapp and Christian Facchi. Performance Improvement Using Dynamic Performance Stubs. Technical Report 14, Ingolstadt University of Applied Sciences, August 2007.

[2] Peter Trapp, Markus Meyer and Christian Facchi. Using CPU Stubs to Optimize Parallel Processing Tasks: An Application of Dynamic Performance Stubs. In ICSEA ’10: Proceedings of the International Conference on Software Engineering Advances. IEEE Computer Society, 2010.

verwandte Themen

Kompetenzfeld
Fahrzeugmechatronik


Abbildung 1
Optimierung des Systemverhaltens durch die Beseitigung von Performance-Engpässen
Abbildung 1 Optimierung des Systemverhaltens durch die Beseitigung von Performance-Engpässen