370 likes | 623 Views
Automatische Diagnose von Performanceproblemen in Datenbankmanagementsystemen. Präsentation im Rahmen des Datenbankseminars zum Thema: „Aktuelle Themen der DB-Forschung und –Entwicklung“ Friedrich-Schiller-Universität Jena Fakultät für Mathematik und Informatik
E N D
Automatische Diagnose von Performanceproblemen in Datenbankmanagementsystemen Präsentation im Rahmen des Datenbankseminars zum Thema: „Aktuelle Themen der DB-Forschung und –Entwicklung“ Friedrich-Schiller-Universität Jena Fakultät für Mathematik und Informatik Lehrstuhl für Datenbanken und Informationssysteme Gehalten von Christian Stützer
Inhaltliche Gliederung • Motivation • Problembeschreibung und Grundlagen • Diagnose • Optimierung • Modelle zur Diagnose des DBMS • Das Ressourcenmodell • Das Workloadmodell • Das Diagnosesystem • Grundlegendes zum Diagnosebaum • Der verbesserte Diagnosebaum • Auswertung und Schlusswort
Motivation • Ständig größer werdende Datenbanken • Admins (DBA) „kämpfen“ mit immer mehr Einstellungsparametern um Performance garantieren zu können ( wachsender Zeitaufwand) • Fehlende finanzielle Mittel Automatisches Tuning spart Zeit und Kosten !
Motivation Was ist Tuning? • Diagnose • Ressourcenverwaltung • (Externe Faktoren)
1. Motivation Ablauf des gesamten Tuningprozess: DBMS-Dokumentation Expertenwissen Diagnosebaum + Ressourcenbaum Ressourcenliste Tuning-Algorithmus Zu tunende Ressource Performance-Monitor Performancedaten Zustand = getuned ??? ja nein END.
1. Motivation Vorhandene Ansätze: • Chaudhuri und Weikum: „Rethinking Database System Architecture“ in„Proceedings of the 26th International Conference on Very Large Databases“, 2000 • Hellerstein: „Automated Tuning Systems“ in „Proceedings of the 1997 Computer Measurement Group“, 1997 • Hart et al: „An Approach To Automated Problem Isolation For Performance Management“ inProceedings of the Computer Measurement Group“, 1999
2. Problembeschreibung und Grundlagen2.1 Diagnose • Diagnose = Finden der Ressourcen mit „schlechter“ Performance • Zwei verschiedene Diagnosesysteme: 1.) Regelbasierende Diagnose • Informationen aus Expertenbefragung • Erstellen eines Entscheidungsbaumes • Durchlaufen des Baumes m.H. von Regeln und Fakten
2. Problembeschreibung und Grundlagen2.1 Diagnose • Beispiel eines Regelbasierenden Entscheidungsbaumes zur Bestimmung des Urlaubsziels Wurzel Kosten > 500€ ? nein ja Angebot für Ausflüge ? Erholungsfaktor ? Knoten niedrig hoch niedrig hoch Bulgarien Türkei Frankreich Karibik Blätter
2. Problembeschreibung und Grundlagen2.1 Diagnose 2.) Modellbasierte Diagnose • Abbildung des Systems auf ein Modell • Modell soll die Fehler des Systems aufzeigen • Primäre Anwendung: Stromkreise • Problem bei DBMS: • Zusammenhänge im DBMS hoch komplex und zu ungenau erforscht Zur Diagnose eines DBMS eher ungeeignet !
2. Problembeschreibung und Grundlagen2.1 Diagnose Wie wird Performance gemessen? • Standardisierte DB-Benchmarks: • Vorgabe durch Transaction Processing Performance Council (TPC) • Wichtigstes Benchmark: TPC-C • Erzeugt 5 Transaktionstypen in Form eines OLTP-Workload • Performancemaß = Transactions per Minute (tpmC) • Weitere Benchmarks: TPC-H (auf OLAP basierend), TPC-R und TPC-W
2. Problembeschreibung und Grundlagen2.2 Optimierung „Optimierung ist eine Technik zur Kalkulation der bestmöglichen Ressourcenauslastung, die notwendig ist, um ein vorgegebenes Ergebnis zu erreichen.“
2. Problembeschreibung und Grundlagen2.2 Optimierung • Anwendung von Optimierungsmethoden auf das Diagnoseproblem: • Allgemeine Optimierung zu aufwendig! • Modell der Linearen Programmierung zu zeitintensiv! • Fallbasierende Argumentation einschränkende Annahmen widersprechen DBMS-Performanceproblemen! • Expertensysteme sehr umfangreiches Regelsystem!
2. Problembeschreibung und Grundlagen2.2 Optimierung Welchen Nutzen können wir nun aus den vorhandenen Modellierungsmethoden ziehen??? • Verwendung des Ansatzes eines Expertensystems • Regeln für die Diagnose der Ressourcen erstellen Regelbasierenden Entscheidungsbaum (=Diagnosebaum) zur automatischen Diagnose verwenden!
3. Modelle zur Diagnose des DBMS • Grundlegende Annahmen: • Hardware- und Softwareressourcen sind begrenzt • DBMS-Performance ist abhängig von den DBMS-Ressourcen • Hardware arbeitet einwandfrei
3. Modelle zur Diagnose des DBMS3.1 Das Ressourcenmodell • Modell beschreibt die Beziehungen zwischen den einzelnen Ressourcen • Bildet diese Beziehungen im Ressourcenbaum ab
3. Modelle zur Diagnose des DBMS3.1 Das Ressourcenmodell Was sind Ressourcen? • Definition: „Ressourcen sind Objekte auf die das DBMS zurückgreift und deren Umfang, Betrag eingestellt werden kann.“ • Unterscheidung von • Physischen Ressourcen • Logischen Ressourcen
3. Modelle zur Diagnose des DBMS3.1 Das Ressourcenmodell Ressource wird beschrieben durch folgende Attribute: • Auswirkung auf die Performance I є {high,medium, low} • Zugelassener BereichA = „set“ • Default Wert D = „Wert“ • Marker Wert M = < mname,mvalue > • Einstellungswert S = < sname,svalue> Darstellung als Tupel: R = < M, I, < S, A >, D >
3. Modelle zur Diagnose des DBMS3.1 Das Ressourcenmodell Beispiel: Anzahl der I/O-Cleaner R M I num_iocleaners= <<%of async writes; 95>; HIGH; <<num_iocleaners; 10>; <0-255>>; 1> S A D
3. Modelle zur Diagnose des DBMS3.1 Das Ressourcenmodell Wie werden die Beziehungen zwischen den Ressourcen dargestellt? • Änderung der Einstellungen einer Ressource hat meist Einfluss auf die Performance einer Anderen • Darstellung dieser Abhängigkeiten durch (gerichtete) Kanten • Beispiel: Buffer Pool Size (BPS) Changed Pages Threshold (CPT) Number of I/O-Cleaners (NOI) = Ressourcenmodell bzw. (forward) Ressourcenbaum
3. Modelle zur Diagnose des DBMS3.1 Das Ressourcenmodell • Forward Ressourcenbaum: • Zeigt Einfluss einer Ressource auf eine Andere (wie gesehen) • Direkte Nachfolger eines Knotens werden direkt beeinträchtigt • Reverse Ressourcenbaum: • Direkte Nachfolger haben einen direkten Einfluss auf den Vorgänger • Vorteil: Ermittlung der Ressource mit schlechter Performance
3. Modelle zur Diagnose des DBMS3.1 Das Ressourcenmodell Beispiel eines Reverse Ressourcenbaum: Buffer Pool Size (BPS) Number of I/O-Cleaners (NOI) Changed Pages Threshold (CPT)
3. Modelle zur Diagnose des DBMS3.1 Das Ressourcenmodell • Formale Darstellung des Ressourcenmodells: RM = {<R,<E>>} mit Ressource R und Menge von möglicher Beziehungen E • Beispiel:RM = {<Bufferpoolsize; <ECPT,ENIO>>}
3. Modelle zur Diagnose des DBMS3.2 Das Workloadmodell • Dient dem konkreten Auffinden von Performanceengpässen und beschreibt den Workloadtyp • Wichtiger Teil des Diagnosesystems • Drei verschiedene Workloadtypen: • On-Line Analytical Processing (OLAP) • On-Line Transaction Processing (OLTP) • Mixture
3. Modelle zur Diagnose des DBMS3.2 Das Workloadmodell • Modell zur Beschreibung der verschiedenen Workloadtypen: • W = {<N; H; I>} • Ressource N = {N1;N2;…;Nm} • Threshold (Grenz-) Wert H = {H1;H2;…;Hn} • Indicator (beobachteter) Wert I = {I1;I2;…;In} • Engpass wird durch Abweichung zwischen Indiactor- und Threshold-Wert erkannt
3. Modelle zur Diagnose des DBMS3.2 Das Workloadmodell Wie trägt das Workloadmodell zur Diagnose bei? • Im Diagnosebaum (regelbasierender Entscheidungsbaum) wird in jedem Konten eine Entscheidung m.H. des Workloadmodells getroffen! Workloadmodell liefert die Fakten zur Entscheidung im Diagnosebaum !
4. Das Diagnosesystem4.1 Grundlegendes zum Diagnosebaum • Ziel des Diagnosebaumes = Erzeugen einer Liste der zu tunenden Ressourcen • Geschieht durch Zusammenspiel zwischen Workloadmodell und Diagnoseregeln • Diagnoseregeln erstellen Entscheidungssituation • Workloadmodell zeigt Engpässe auf und bestimmt den Weg durch den Diagnosebaum • Ressourcenmodell gibt in Verbindung stehende Ressourcen an
4. Das Diagnosesystem4.1 Grundlegendes zum Diagnosebaum • Aufbau des Diagnosebaums: • Knoten = Entscheidungsknoten (Di) • Informationen aus Expertenbefragungen oder eigenen Test • Blätter = Tuningknoten (Ti) • Welche Ressource soll getuned werden? • Reihenfolge, nach der die Ressourcen betrachtet werden wird durch Diagnosebaum beschrieben
4. Das Diagnosesystem4.1 Grundlegendes zum Diagnosebaum D1 Buffer Pool Hit Rate > 90% ? Beispiel: yes no D2 Async. Writes > 95% yes no T1 Tune the Buffer Pools D3 Average Lock Wait Time High? (>1000) T2 Fix Number of I/O Cleaners yes no D4 Lock Escalations? D5 Sortheap Overflows? … …
4. Das Diagnosesystem4.1 Grundlegendes zum Diagnosebaum (Exakter) Ablauf des Diagnosesystems: Durchlaufen des Diagnosebaums Ressourcenliste Ressourcenbaum Erweiterte/ gekürzte Ressourcenliste Tuning-Algorithmus Zu tunende Ressource System ändert Ressourcenparameter Performance-Monitor Performancedaten Zustand = getuned ??? ja nein END.
4. Das Diagnosesystem4.1 Grundlegendes zum Diagnosebaum • Initialisieren des Diagnosebaums: • Nutzen der Informationen über Ressourcen aus DBMS-Dokumentation oder von Experten (DBAs) • In DB2 kann der „Performance-Tuning-Wizard“ genutzt werden • Threshold-Werte werden durch Tests gewonnen • Threshold-Werte sehr wichtig, da bei falschen Werten falsche Diagnosen entstehen können
4. Das Diagnosesystem4.2 Der verbesserte Diagnosebaum • Ziel: Finden der besten möglichen Threshold-Werte • Vorgehen: • Änderung der Einstellungen (Setting-Wert) jeweils einer Ressource • Vorgehen nach vorher bestimmter Politik • Vergleich der Benchmarkergebnisse (TPC-C)
4. Das Diagnosesystem4.2 Der verbesserte Diagnosebaum • Tunen des Diagnosebaumes am Beispiel der Ressource „Number of I/O-Cleaners“
4. Das Diagnosesystem4.2 Der verbesserte Diagnosebaum • Unterschiede zum initialisierten Diagnosebaum: • „Bessere“ Threshold-Werte • Eliminierung von Ressourcen ohne signifikanten Einfluss auf die Performance • Wurzel fragt nach Lock-Escalations
4. Das Diagnosesystem4.2 Der verbesserte Diagnosebaum yes D1 Lock Escalations? no • Beispiel: D3 Buffer Pool Hit Rate > 90% ? D2 Locklist in Use = Locklist size? (90%)? yes no yes no T2 Increase Locklist size T3 Fix Number of I/O Cleaners D4 Async. Writes > 95% T4 Tune the Buffer Pools no yes D5 Average Lock Wait Time High? (>1000) T5 Fix Number of I/O Cleaners …
5. Auswertung und Schlusswort • Probleme in der Praxis: • Regelmäßige Veränderung des Workload • Reverse Ressorcenbaum und verbesserter Diagnosebaum müssen „per Hand“ erzeugt werden • Nicht alle DBMS unterstützten dynamische Einstellung der Ressourcen • Performanceprobleme lassen sich nicht immer exakt auf eine Ressource zurückführen
5. Auswertung und Schlusswort • Zur Realisation der automatischen Diagnose sind weitere Forschungen und Entwicklungen in folgenden Beereichen notwendig: • Dynamische Ressourceneinstellungen in DBMS • Intelligente Tuning-Algorithmen • Implementierung des Diagnosesystems in ein DBMS