Seminarunterlage Version: 2.03 Version 2.03 vom 8. Juli 2014
Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen. Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der jeweiligen Unternehmen. Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der weitergegeben oder benutzt werden. Die besitzt folgende Geschäftsstellen Adressen der Westernmauer 12-16 D-33098 Paderborn Tel.: (+49) 0 52 51 / 10 63-0 An der alten Ziegelei 5 D-48157 Münster Tel.: (+49) 02 51 / 9 24 35 00 Marlene-Dietrich-Str. 5 D-89231 Neu-Ulm Tel.: (+49) 07 31 / 9 85 88 550 Kreuzberger Ring 13 D-65205 Wiesbaden Tel.: (+49) 06 11 / 7 78 40 00 Wikingerstraße 18-20 D-51107 Köln Tel.: (+49) 02 21 / 8 70 61 0 Internet: http://www.ordix.de Email: training@ordix.de Seite 2 Version: 2.03
Inhaltsverzeichnis 1 Einführung... 7 1.1 Einführung... 8 1.1.1 Beispiele für Überkapazitäten... 9 1.1.2 Beispiele für Unterkapazitäten... 10 1.1.3 Ziele der Kapazitätsplanung... 11 1.2 Grundlagen zur Performance-Vorhersage... 12 1.2.1 Transaktionen... 13 1.2.2 Beispiel zu Transaktionen... 14 1.2.3 Die Ankunftsrate (arrival rate)... 15 1.2.4 Der Transaktionsprozessor (server)... 16 1.2.5 Die Servicezeit (service time)... 17 1.2.6 Die Warteschlange (queue)... 18 1.2.7 Queuing... 19 1.2.8 Queuing im Alltag... 20 1.2.9 Die Antwortzeit (response time)... 21 1.3 Antwortzeitkurven (response time curve)... 22 1.3.1 Beispiel Antwortzeitkurve... 23 1.4 Risikominimierende Strategien... 24 1.4.1 Beispiele für risikominimierende Strategien... 25 1.4.2 Entscheidung für eine Strategie... 26 2 Methodische Performance-Vorhersage... 27 2.1 Methodische Performance-Vorhersage... 28 2.2 Die Methode... 29 2.2.1 Zielfestlegung... 30 2.2.1.1 Typische Fragestellungen... 31 2.2.1.2 Abschluss Zielfestlegung... 32 2.2.2 Datensammlung... 33 2.2.3 Charakterisierung der Arbeitslast... 34 2.2.3.1 Auslastungsspitzen... 35 2.2.3.2 Baseline... 36 2.2.3.3 Wahl der Baseline... 37 2.2.4 Modellentwicklung für eine Vorhersage... 38 2.2.4.1 Erläuterungen zu den Modellen... 39 2.2.4.2 Modellauswahl... 41 2.2.5 Verifikation der Vorhersage... 42 2.2.6 Vorhersage... 43 2.3 Übungen... 44 2.3.1 Beispiel Szenario... 45 2.3.2 Lösungsweg... 46 3 Datensammlung... 47 3.1 Datensammlung... 48 3.2 Herausforderungen... 49 3.3 Best Practice... 50 3.4 Möglichkeiten der Datenbeschaffung... 51 3.5 Tools für die Datensammlung... 52 3.5.1 sar-befehl... 53 3.5.2 Statistiken in Oracle... 54 3.5.3 Oracle Views... 55 3.5.4 v$sysstat View... 56 3.5.5 v$osstat View... 57 3.5.6 Session Tracing... 58 3.5.6.1 DBMS_MONITOR... 59 3.5.6.2 Method-R... 60 3.5.7 Automatic Workload Repository(AWR)... 61 3.5.7.1 AWR Überblick... 62 Version: 2.03 Seite 3
3.5.7.2 AWR Snapshots... 63 3.5.7.3 Statistik Parameter AWR... 64 3.5.7.4 AWR Reports generieren... 65 3.6 Wait Events und Modellierung... 66 3.6.1 Zustände des Benutzerprozesses... 67 3.6.2 Zwei Zustände des Benutzerprozesses... 68 3.6.3 Service-Zeiten vs. Wait Events... 70 3.6.4 I/O-Wait Events... 71 3.6.5 Wait Events bei Serialisierung... 72 3.7 Stichprobe ermitteln... 73 3.7.1 SQL identifizieren... 74 3.7.2 SQL Zeitreihe über Active Session History... 75 3.7.3 SQL Zeitreihe über AWR... 76 3.8 Serialisierung in Oracle... 77 3.9 Performance Sprünge... 78 3.10 Interpretation der Daten... 79 3.11 Baselines... 80 3.12 Wahl einer Baseline... 81 3.13 Abschluss Datensammlung und -interpretation... 82 3.14 Beispiel Datenbankwachstum... 83 3.15 Wachstum historisch und Prognose... 84 3.16 Skript-Sammlung... 85 3.17 Übung... 86 3.18 Auswertungen... 87 4 Queuing... 88 4.1 Kapitelinhalt... 89 4.2 Grundlagen und Grundbegriffe: warten... 90 4.2.1 Beispiele für Warten... 91 4.2.2 Beispiel & Grundbegriffe... 92 4.2.3 Mautstation Problematik... 95 4.2.4 Gedankenspiele... 96 4.2.5 Warten Unterschied I/O & CPU... 97 4.3 Übersicht Kapitelinhalt... 99 4.4 Basisformeln... 100 4.4.1 Variablen im Überblick... 101 4.4.2 Basisformeln response time... 102 4.4.3 Basisformeln queue length... 103 4.4.4 Basisformeln transactions in system... 104 4.4.5 Basisformeln Beispiel transactions in system... 105 4.4.6 Basisformeln utilization... 106 4.4.7 Formeln im Überblick I Zusammenhänge... 107 4.4.8 Basisformeln - Fazit... 108 4.5 Übersicht Kapitelinhalt... 109 4.6 Response time Diagramm... 110 4.6.1 Response time graph Beobachtungen... 111 4.6.2 Response time graph Auswertung... 112 4.6.3 CPU response time... 113 4.6.4 I/O response time... 114 4.6.5 Formeln im Überblick II Response time... 115 4.7 Übung: Queuing Basics... 116 4.8 Lösung: Übung Queuing Basics... 119 4.9 Kapitelzusammenfassung... 120 5 M/M/N Queuing Modell... 121 5.1 Kapitelinhalt... 122 5.2 Einführung... 123 5.2.1 Exponentialverteilung... 125 5.3 Notation Grundform... 126 5.3.1 M/M/N Notation... 127 Seite 4 Version: 2.03
5.4 Queuing als Folge... 132 5.5 Do it: Exponentialverteilung... 134 5.5.1 Exponentialverteilte Zufallszahlen... 135 5.5.1.1 Zufallsreihe mittels Inversionsmethode... 136 5.5.1.2 Inversionsmethode: Schritt 3... 137 5.5.2 Zeitreihe... 138 5.6 Überleitung Poisson... 140 5.7 Poisson-Verteilung... 141 5.7.1 Exponentialverteilte Ankunftsrate... 142 5.7.2 Exponential / Poisson Verhältnis... 143 5.7.2.1 Poisson Verteilung Beispiel 1... 144 5.7.2.2 Poisson Verteilung Beispiel 2... 145 5.7.3 Praktisches Vorgehen... 146 5.8 Chi-Quadrat-Test... 147 5.8.1 Verfahren... 148 5.8.1.1 Beispiel Quantile der Exponentialverteilung... 149 5.8.1.2 Quantile der Exponentialverteilung... 150 5.8.1.3 Beobachtungswerte je Perzentil bestimmen... 151 5.8.1.4 Summe der quadratischen Abweichungen... 152 5.8.1.5 Chiquadrat Verteilung und Signifikanz... 153 5.8.1.6 Summe der quadratischen Abweichungen... 154 5.8.1.7 Chiquadrat Auswertung... 155 5.8.2 PL/SQL Beispiel Gleichverteilung... 156 5.8.3 PL/SQL Beispiel Exponentialverteilung... 157 5.8.4 Chiquadrat Quantile Excel... 158 5.9 Skalierung... 159 5.10 Server Skalierung... 160 5.10.1 Systemvergleich... 161 5.11 Es geht genauer Erlang C... 163 5.11.1 Erlang C... 164 5.11.2 Erlang C - Formel... 165 5.11.3 Responsetime Formel und Erlang C im Vergleich... 166 5.11.4 Erlang C Besonderheiten... 169 5.12 Übung Queueing Advanced... 170 5.12.1 Lösung: Übung Queuing Advanced... 172 5.12.2 Übung Queuing Template... 173 5.12.3 Lösung: Übung Queuing Template... 175 5.13 Einschränkungen... 178 5.14 Kapitelzusammenfassung... 180 6 Ratio Modeling... 181 6.1 Ratio Modeling... 182 6.2 Vorgehensweise... 183 6.3 Auslastungsdaten... 184 6.4 Die Formeln... 185 6.4.1 Ratio Modeling Formeln... 185 6.5 Beispiel Rechnung Batch-Ratio... 188 6.6 Festlegen einer Batch-Ratio... 189 6.7 Beispiel Rechnung OLTP-Ratio... 190 6.8 Festlegen einer OLTP-Ratio... 191 6.9 Beispiel einer Vorhersage... 192 6.10 Interpretation der Vorhersage... 193 6.11 Präzision der Vorhersage... 194 6.12 Typische Szenarien... 195 6.13 Bewertung... 196 7 Regressionsanalyse... 197 7.1 Überblick... 198 7.2 Grundarten... 199 7.3 Lineare Regression... 201 Version: 2.03 Seite 5
7.3.1 Berechnung der linearen Regression... 202 7.3.2 Berechnung der Regressionsgeraden... 203 7.3.3 Vorgehensweise... 204 7.3.4 Wahl der abhängigen Variablen... 205 7.3.5 Beispiele für Variablenwahl... 206 7.4 Bestimmtheitsmaß... 207 7.4.1 Interpretation... 208 7.4.2 Beispiele... 209 7.5 Behandlung von Ausreißern... 210 7.6 Anwendung in Oracle... 211 7.7 Oracle Advanced Analytics Option... 214 7.8 Bewertung... 215 7.9 Praktisches Beispiel... 216 7.9.1 Lineare Regression... 217 7.9.2 Lineare Regression Oracle Funktionen... 218 7.9.3 Zu untersuchendes SQL... 219 7.9.4 Basisanalyse... 220 7.9.5 Lineare Regression - sehr gute Übereinstimmung... 221 7.9.6 Ausreißer... 222 7.9.7 Zusammenfassung... 225 8 Skalierbarkeit... 226 8.1 Skalierbarkeit... 227 8.2 Nicht lineare Skalierbarkeit... 228 8.3 Ansatz der Skalierbarkeitsmodelle... 229 8.4 Vorgehensweise... 230 8.5 Übersicht Skalierbarkeitsmodelle... 231 8.6 Modellauswahl... 232 8.7 Herausforderungen... 233 8.8 Skalierbarkeit vs. Queuing... 234 8.9 Fazit... 235 Seite 6 Version: 2.03