automatische diagnose von performanceproblemen in datenbankmanagementsystemen präsentation im...
TRANSCRIPT
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 JenaFakultät für Mathematik und Informatik
Lehrstuhl für Datenbanken und Informationssysteme
Gehalten von Christian Stützer
Inhaltliche Gliederung
1. Motivation2. Problembeschreibung und Grundlagen
1. Diagnose2. Optimierung
3. Modelle zur Diagnose des DBMS1. Das Ressourcenmodell2. Das Workloadmodell
4. Das Diagnosesystem1. Grundlegendes zum Diagnosebaum2. Der verbesserte Diagnosebaum
5. Auswertung und Schlusswort
1. 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 !
1. Motivation
Was ist Tuning? Diagnose Ressourcenverwaltung (Externe Faktoren)
1. Motivation
Ablauf des gesamten Tuningprozess:
Expertenwissen DBMS-Dokumentation
Diagnosebaum + Ressourcenbaum
Tuning-Algorithmus
Performance-Monitor
Ressourcenliste
Zu tunende Ressource
Zustand = getuned ???Performancedaten
END.ja nein
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“ in Proceedings 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
Kosten > 500€ ?
Angebot für Ausflüge ?
nein
Erholungsfaktor ?
Bulgarien Türkei Frankreich Karibik
niedrig hochniedrig hoch
Wurzel
Knoten
Blätter
ja
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 Bereich A = „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)
Changed Pages Threshold (CPT)
Number of I/O-Cleaners (NOI)
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
Beispiel: D1Buffer Pool Hit Rate
> 90% ?
T1Tune the Buffer Pools
D2Async. Writes
> 95%
T2Fix Number of I/O Cleaners
D3Average Lock Wait
Time High? (>1000)
D4Lock Escalations?
D5Sortheap Overflows?
… …
yes no
yes
yes
no
no
4. Das Diagnosesystem4.1 Grundlegendes zum Diagnosebaum
(Exakter) Ablauf des Diagnosesystems:Durchlaufen des Diagnosebaums
Tuning-Algorithmus
Performance-Monitor
Ressourcenliste
Zu tunende Ressource
Zustand = getuned ???Performancedaten
END.ja nein
Ressourcenbaum Erweiterte/ gekürzte Ressourcenliste
System ändert Ressourcenparameter
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
Beispiel: D1Lock Escalations?
T4Tune the Buffer Pools
D4Async. Writes
> 95%
T5Fix Number of I/O Cleaners
D5Average Lock Wait
Time High? (>1000)
…
D3Buffer Pool Hit Rate
> 90% ?
D2Locklist in Use =
Locklist size? (90%)?
T3Fix Number of I/O Cleaners
T2Increase Locklist size
no
no no
no
yes
yes
yes
yes
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