lutz FRÖHLICH ORACLE 11g PERFORMANCE FORECAST AKTUELLE UND ZUKÜNFTIGE PERFORMANCE-PROBLEME ERKENNEN UND VERMEIDEN E D I T I O N P R A X I S W I S S E N
Fröhlich Oracle 11g Performance Forecast vbleiben Sie einfach auf dem Laufenden: www.hanser.de/newsletter Sofort anmelden und Monat für Monat die neuesten Infos und Updates erhalten.
Lutz Fröhlich Oracle 11g Performance Forecast Aktuelle und zukünftige Performance-Probleme erkennen und vermeiden
Lutz Fröhlich, Darmstadt lutz@lutzfroehlich.de Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht. Ebenso übernehmen Autor und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) auch nicht für Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. 2008 Carl Hanser Verlag München Wien (www.hanser.de) Lektorat: Margarete Metzger Herstellung: Irene Weilhart Coverkonzept: Marc Müller-Bremer, www.rebranding.de, München Coverrealisation: Stephan Rönigk Datenbelichtung, Druck und Bindung: Kösel, Krugzell Ausstattung patentrechtlich geschützt. Kösel FD 351, Patent-Nr. 0748702 Printed in Germany ISBN 978-3-446-41494-5
Inhalt Vorwort...VII 1 Einführung... 1 1.1 Wozu Performance Forecast?... 1 1.2 Für wen ist dieses Buch bestimmt?... 2 1.3 Einordnung in die IT-Landschaft... 3 2 Ansatz und Vorgehen... 5 2.1 Einflüsse auf die Performance... 5 2.2 Trennung von Change und Capacity Management... 8 2.3 Die Bedeutung von Workload-Statistiken... 9 2.4 Ein Beispiel... 10 2.5 Forecast-Modelle... 20 2.5.1 Mathematische Forecast-Modelle... 21 2.5.2 Queuing-Modelle... 26 2.5.3 Benchmark-Modelle... 29 3 Workload-Statistiken... 35 3.1 Rohdaten sammeln...39 3.1.1 Statistik-Daten auswählen... 40 3.1.2 Statistiken mit Agenten und mit DB-Links sammeln... 42 3.1.3 Statistiken aus dem Oracle AWR und dem Oracle EM lesen... 66 3.1.4 Sicherheitsaspekte... 68 4 Mathematische Forecast-Modelle... 69 4.1 Notationen... 71 4.2 Das Basic Relation Model... 72 4.3 Lineare Regressions-Modelle... 74 4.3.1 Simple Linear Regression Model... 74 4.3.2 Multiple Linear Regression Model... 95 4.4 Fazit für Lineare Regressionsmodelle... 103 V
Inhalt 5 Queuing-Modelle... 105 5.1 Zur Queuing-Theorie...106 5.1.1 Die M/M/1 Queue im Überblick...109 5.2 Queuing in Computersystemen...113 5.3 Queuing und Performance Forecast...115 5.3.1 Beispiel für Antwortzeiten von Online-Sessions...116 5.3.2 Forecasts für I/O-Subsysteme...123 5.3.3 System-Forecasts erstellen...136 5.4 Fazit zu Forecasts mit der Queuing-Theorie...144 6 Benchmark-Modelle... 145 6.1 Einsatzmöglichkeiten von Benchmarks...146 6.2 Oracle Real Application Testing...148 6.2.1 Workload Capture...150 6.2.2 Workload Preprocessing...153 6.2.3 Workload Replay...153 6.2.4 Den Workload auswerten...156 6.3 Skalierung von Benchmarks...161 6.3.1 Skalierung nach Amdahl...165 6.3.2 Super-Serial-Skalierung...168 6.4 Bestimmen der Skalierungsfaktoren...173 6.5 Benchmarks für Entwickler und Software-Hersteller...181 6.6 Fazit zu den Benchmark-Modellen...182 7 Performance Monitoring... 183 7.1 Mehrstufiges Monitoring...184 7.1.1 Eine Baseline bilden...185 7.1.2 Statistiken aufbereiten...187 7.1.3 Überwachung durch Schwellwerte...190 7.1.4 Berichterstellung...193 7.2 Die Vorhersage von Performance-Problemen...194 7.3 Monitoring mit eigenen Skripten...199 7.4 Monitoring mit dem Oracle Enterprise Manager...200 7.4.1 Überwachung von Datenbank-Metriken...200 7.4.2 SQL-Ausführungspläne überwachen...205 Register... 207 VI
Vorwort Mit dem wachsenden Bedarf, Informationen zu speichern, erhöhen sich die Anforderungen an Datenbanken. So ist in den letzten zehn Jahren die Standardgröße von Datenbanken aus dem Megabyte-Bereich in den Bereich von mehreren hundert Gigabyte gewachsen. Datenbanken von mehreren Terabyte werden längst nicht mehr bestaunt, sondern gehören zum Alltag. Mit der zunehmenden Größe wachsen die Performance-Probleme. Aber nicht allein die Größe einer Datenbank ist ausschlaggebend für Antwortzeiten und Durchsatz. Auch die zunehmende Komplexität und die vielen Änderungen werden immer mehr zum Problem. Dabei wird viel zu wenig getan, um potentielle Performance-Probleme zu erkennen und zu vermeiden, bevor sie überhaupt entstehen. Das übliche Vorgehen ist leider immer noch abzuwarten, bis die ersten Probleme auftreten, und dann die Performance-Feuerwehr zu rufen. Allerdings fehlen noch in vielen Bereichen Methoden und Software, um proaktives Kapazitätsmanagement zu betreiben. Gerade Performance Forecasting für Datenbanken ist eine vergleichsweise junge Disziplin, die erst anfängt, sich zu entfalten. In diesem Buch finden Sie viele Anregungen, wie dieses Thema vor dem Hintergrund der kürzlich erschienen Datenbankversion Oracle 11g praktikabel umgesetzt werden kann. Das Buch wendet sich an alle, die an den Themen Performance und Kapazitätsmanagement für Datenbanken interessiert sind. Egal ob Sie IT-Manager, Administrator für Datenbanken, Systemintegrator oder Entwickler von Datenbank-Applikationen sind, das Thema Performance wird Sie in den nächsten Jahren immer stärker beschäftigen. Beachtlich sind auch die Kosteneinsparungen, die durch Prävention von Performance-Incidents und Kapazitätsplanung erreicht werden können. Der Buchaufbau Nach einer kurzen Einleitung gibt Ihnen Kapitel 2 einen Überblick über Verfahren und Modelle. Für jedes Modell finden Sie eine Kurzdarstellung sowie ein Zusammenfassung von Vor- und Nachteilen sowie Einsatzgebieten. VII
Vorwort Jeder der drei wichtigsten Methoden ist im weiteren Verlauf des Buches ein eigenes Kapitel gewidmet. So finden Sie in: Kapitel 4: Mathematische Forecast-Modelle, Kapitel 5: Queuing-Modelle, Kapitel 6: Benchmark-Modelle und Skalierung. Ein Direkteinstieg in jedes dieser Kapitel ist möglich. Kapitel 3 beschäftigt sich mit dem Thema Workload-Statistiken als Basis für Forecasting und Monitoring. Die enge Verbindung zwischen Forecasting und Monitoring wird im Buch durchgängig berücksichtigt. Das Kapitel 7 beschäftigt sich dann ausgiebig mit dem Thema Performance-Monitoring und nimmt Bezug auf Kapitel 2. Skripte und Software Die Skripte stehen auf den Webseiten des Verlags und des Autors zum Download bereit: http://downloads.hanser.de, http://www.lutzfroehlich.de/downloads. Alle SQL-Skripte beziehen sich auf Oracle 11g und können in SQL*Plus ausgeführt werden. Sie sind durchaus auf frühere Datenbankversionen übertragbar. Beachten Sie, dass dort nicht alle erwähnten Features zur Verfügung stehen. Die Shell-Skripte wurden unter Red Hat Linux entwickelt und können mit wenigen Änderungen auf andere Unix-Betriebssysteme übertragen werden. Die Ausgabe der Skripte erfolgt im ASCII-Format und kann einfach in Tabellenkalkulationssysteme geladen werden. Über den Autor Lutz Fröhlich ist Diplom-Mathematiker und Oracle Certified Master. Er beschäftigt sich seit 14 Jahren mit Oracle-Datenbanken und schöpft seine praktischen Erfahrungen aus langjährigen Consulting-Tätigkeiten in den USA und Europa. Seine Spezialgebiete sind Performance und Hochverfügbarkeit. Zur Zeit arbeitet er in einem Team von Datenbankadministratoren, das über 200 Produktionsdatenbanken für eine große deutsche Bank betreut. Dank Mein Dank geht an den Hanser Verlag, insbesondere an Frau Margarete Metzger, sowie an alle, die das Erscheinen des Buches ermöglicht haben. Darmstadt, im Juni 2008 Lutz Fröhlich VIII
1 1 Einführung 1.1 Wozu Performance Forecast? Für die Performance von Datenbank-Applikationen besteht eine direkte Abhängigkeit von der Performanz der eingebundenen SQL-Anweisungen sowie der Datenbank selbst. Wohl jeder, der sich mit dem Betrieb von Datenbanken beschäftigt, konnte bereits das Phänomen beobachten, dass eine Datenbank-Applikation völlig zufriedenstellend läuft und plötzlich, gewissermaßen über Nacht, einen Performance-Einbruch erleidet. Dann laufen die Batch- Prozesse nicht mehr termingerecht durch, und die Anwender beschweren sich über zu lange Reaktionszeiten bei Online-Abfragen. Die Suche nach den Ursachen und die Beseitigung der Probleme ist nach dem Eintreten des Ereignisses häufig ein zeit- und kostenintensiver Prozess, der einhergeht mit Störungen im Betriebsablauf und einem Vertrauensverlust. Häufig wird versucht, das Problem durch Sofortmaßnahmen wie eine teure Hardware-Aufrüstung zu lösen. Die Effekte sind allerdings niederschmetternd, da die eigentlichen Problemursachen nicht beseitigt sind. In einer zunehmenden Anzahl von Bereichen ist inzwischen die Abhängigkeit von termingerechter Bereitstellung und Weiterleitung von Daten inzwischen so groß, dass die damit verbundenen Störungen einen beträchtlichen betriebswirtschaftlichen Schaden auslösen. Banken und Versicherungen beziffern für Business-kritische Applikationen den Ausfall oder die Verzögerung von wenigen Stunden bereits mit mehrstelligen Millionen-Beträgen. Service Provider arbeiten auf der Basis von Service Level Agreements (SLA s) und müssen mit Schadensersatzforderungen ihrer Kunden rechnen. Viele Firmen versuchen deshalb das Thema Performance in ihr Risk Management zu integrieren. Dies gelingt jedoch aufgrund der Komplexität des Themas sowie des Mangels an bereitstehenden Methoden und Werkzeugen häufig nur mit mäßigem Erfolg. Hinzu kommt die Tatsache, dass eine Performance-Überwachung mit herkömmlichen Methoden hohe Kosten verursacht. 1
1 Einführung Doch wie kann man das Problem in den Griff bekommen? Teilweise wird mit der produktiven Einführung von Datenbanken und Applikationen ein hoher Aufwand betrieben, um Funktionalität und Performance des Produkts sicherzustellen. Dennoch kippt die Datenbank nach einigen Monaten, und die Performance-Verluste führen zu betrieblichen Störungen. In dieser Zeit unterlag die Datenbank einer großen Anzahl von Veränderungen vom Einspielen neuer Anwendungs-Funktionalität über das Upgrade und Patchen des Datenbank-Betriebssystems bis hin zum Wachstum von Datenmenge sowie der Anzahl von Benutzern und Mandanten. Das vorliegende Buch gibt Antworten auf alle diese Fragen und stellt Methoden und Werkzeuge für Kontrolle und Vorhersage von Datenbank-Performance, speziell für die gerade erschienene Datenbank Oracle 11g bereit. Durch die Kombination von mathematischen Methoden mit einem pragmatischen Ansatz zeigt es, wie eine permanente Überwachung Business-kritischer Datenbanken erfolgen kann und kostengünstig zuverlässige Vorhersagen getroffen werden können. Die Vorhersagen dienen dabei nicht nur der Performance-Stabilität, IT-Budgets können zuverlässiger geplant und sachdienlicher eingesetzt werden. 1.2 Für wen ist dieses Buch bestimmt? Als Datenbank-Administrator finden Sie in diesem Buch praktische Lösungen für die Überwachung und Einhaltung von Performance-Vorgaben und Service Level Agreements. Sie lernen, zuverlässige Performance-Vorhersagen zu treffen und Szenarien durchzuspielen. Damit sind Sie in der Lage, Was-wäre-wenn -Fragen zu geplanten Veränderungen von Workload, Infrastruktur oder Applikation zu beantworten. Wenn Sie als IT Manager tätig sind, finden Sie hier Verfahren, die Ihnen helfen, Themen wie Performance Monitoring und Forecast in Ihrem Bereich zu organisieren. Sie erhalten Entscheidungsgrundlagen für die Hardware- und Budgetplanung und sind damit in der Lage, Ressourcen optimal zu nutzen und damit Kosten zu sparen. Mit Kostenmodellen können Sie Aufwendungen für Hardware-Erweiterungen mit Aufwendungen für Performance- Optimierung vergleichen. Beginnen Sie mit der Einführung eines Capacity Management im wichtigen Bereich der Datenbanken. Als Datenbank-Entwickler finden Sie Methoden und Lösungen, die Performance Ihrer Applikationen vor Produktionseinführung kundenspezifisch zu berechnen, ohne teure Tests mit Echtdaten durchführen zu müssen. Für Manager oder Mitarbeiter im Risk und Problem-Management liefert das Buch eine Anleitung, wie Risiken und Probleme praxisnah bewertet werden können. Auf der Grundlage von Vorhersagen können Risikofaktoren definiert und verglichen werden. Weiterhin spricht das Buch alle Leser an, die sich mit dem Thema Datenbank-Performance beschäftigen und bisher vorwiegend Trouble Shooting betrieben haben. Performance Forecast bietet die Möglichkeit, zukünftige Probleme zu erkennen und zu verhindern. 2