AWR: Wie „exadatiert“ die Datenbankarbeit?

Mit diesem kurzen Beitrag möchte ich ein MissverstĂ€ndnis ĂŒber die Analyse von AWR-Datenbanken, die auf Oracle Exadata laufen, ausrĂ€umen. Fast 10 Jahre lang bin ich stĂ€ndig mit der Frage konfrontiert worden: Welchen Beitrag leistet die Exadata-Software zur Leistung? Oder, um neu geprĂ€gte Wörter zu verwenden: Wie sehr wird die Leistung einer bestimmten Datenbank durch Exadata beeinflusst?

AWR: Wie „exadatiert“ die Datenbankarbeit?

Auf diese richtige Frage, meiner Meinung nach, wird oft eine falsche Antwort gegeben, die sich auf AWR-Statistiken stĂŒtzt. Diese prĂ€sentiert eine Methode der systematischen Wartezeiten, die die Antwortzeiten als Summe der Prozessorauslastung (DB CPU) und der Wartezeiten verschiedener Klassen interpretiert.

Mit dem Erscheinen von Exadata sind in der AWR-Statistik spezifische systematische Wartezeiten hinzugekommen, die mit der Funktionsweise der Exadata-Software verbunden sind. In der Regel beginnen die Bezeichnungen dieser Wartezeiten mit dem Wort „cell“ (eine Zelle bezeichnet den Exadata Storage-Server). HĂ€ufig sind Wartezeiten mit den aussagekrĂ€ftigen Bezeichnungen „cell smart table scan“, „cell multiblock physical read“ und „cell single block physical read“ zu finden.

In den meisten FĂ€llen ist der Anteil solcher Exadata-Wartezeiten an der Gesamtreaktionszeit gering, sodass sie nicht einmal im Abschnitt der Top 10 Foreground Events by Total Wait Time auftauchen (in diesem Fall mĂŒssen sie im Abschnitt Foreground Wait Events gesucht werden). Nur mit großem Aufwand fanden wir bei unseren Kunden ein Beispiel eines tĂ€glichen AWR-Berichts, in dem die Exadata-Wartezeiten in die Top 10 aufstiegen und insgesamt etwa 5 % ausmachten:

Ereignis

Wartezeiten

Gesamtwartezeit (Sek.)

Durchschnittliche Wartezeit

% DB-Zeit

Warteklasse

DB CPU

115,2K

70.4

SQL*Net weitere Daten von dblink

670,196

5471.5

8,16 ms

3.3

Netzwerk

Cell einfacher Block physikalisch lesen

5,661,452

3827.6

676,07 ”s

2.3

Benutzer I/O

Sync ASM-Ausgleich

4,350,012

3481.3

800,30 ”s

2.1

Andere

Cell Multiblock physikalisch lesen

759,885

2252

2,96 ms

1.4

Benutzer I/O

direkt Pfad lesen

374,368

1811.3

4,84 ms

1.1

Benutzer I/O

SQL*Net Nachricht von dblink

7,983

1725

216,08 ms

1.1

Netzwerk

Cell intelligenter Tabellen-Scan

1,007,520

1260.7

1,25 ms

0.8

Benutzer I/O

direkt Pfadlesen temporÀr

520,211

808.4

1,55 ms

0.5

Benutzer I/O

enq: TM — Konkurrenz

652

795.8

1220,55 ms

0.5

Application

Aus solchen AWR-Statistiken werden oft folgende Schlussfolgerungen gezogen:

1. Der Beitrag der Exadata-Magie zur Datenbankleistung ist nicht hoch — er ĂŒberschreitet nicht 5 %, und die Datenbank 'exadatisiert' schlecht.

2. Wenn eine solche Datenbank von Exadata auf die klassische Architektur „Server + Array“ ĂŒbertragen wird, Ă€ndert sich die Leistung nicht wesentlich. Denn selbst wenn dieses Array dreimal langsamer ist als das Speichersystem von Exadata (was fĂŒr moderne All-Flash-Arrays kaum möglich ist), ergibt sich durch die Multiplikation von 5 % mit drei eine Erhöhung des Anteils an Eingabe-/Ausgabewarteschlangen auf 15 % — eine solche Datenbank wird das mit Sicherheit ĂŒberstehen!

Beide Schlussfolgerungen sind ungenau, mehr noch, sie verzerren das VerstĂ€ndnis der Idee, die in Exadata Software steckt. Exadata sorgt nicht nur fĂŒr schnellen Input/Output, sondern funktioniert grundsĂ€tzlich anders als die klassische Architektur „Server + Array“. Wenn die Datenbank tatsĂ€chlich „exadatiert“ ist, wird die SQL-Logik auf das Speichersystem ĂŒbertragen. Server Dank einer Reihe spezieller Mechanismen (vor allem Exadata Storage Indexes, aber nicht nur) finden die Systeme selbst die benötigten Daten und senden sie an die DB-Server. Sie tun dies ausreichend effizient, weshalb der Anteil der typischen Exadata-Wartezeiten an der Gesamtreaktionszeit gering ist. 

Wie wird sich dieser Anteil außerhalb von Exadata verĂ€ndern? Welche Auswirkungen hat das auf die Gesamtleistung der Datenbank? Die besten Antworten auf diese Fragen liefert das Testen. Zum Beispiel kann das Warten auf den »Cell Smart Table Scan« außerhalb von Exadata zu einem so intensiven Table Full Scan werden, dass die E/A alle Reaktionszeiten in Anspruch nimmt und die Leistung dramatisch sinkt. Aus diesem Grund ist es falsch, bei der Analyse von AWR den Gesamtprozentsatz der Exadata-Wartezeiten als Beitrag ihrer Magie zur Leistung zu betrachten und erst recht, diesen Prozentsatz zur Leistungsprognose außerhalb von Exadata zu verwenden. Um zu verstehen, wie sehr die Arbeit der Datenbank „exadatisiert“ wird, mĂŒssen die Statistiken im AWR-Bereich „Instance Activity Stats“ untersucht werden (dort finden sich viele Statistiken mit aussagekrĂ€ftigen Bezeichnungen) und miteinander verglichen werden.

Um zu verstehen, wie sich die Datenbank außerhalb von Exadata verhalten wird, ist es am besten, ein Klon der Datenbank aus einem Backup auf der Zielarchitektur zu erstellen und die Leistung dieses Klons unter Last zu analysieren. Diese Möglichkeit haben in der Regel die Besitzer von Exadata.

Autor: Alexey Struchenko, Leiter der Datenbankabteilung bei »Infosystemy Jet«

Quelle: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster