Dieses Webinar finden Sie auch auf unserem Youtube Webinar Channel.
Oracle I/O Calibrate richtig einsetzen und verstehen
Mit I/O Calibrate bietet die Oracle Datenbank ein mächtiges Performance Messinstrument zum Ermitteln der Storage Performance direkt aus der Oracle Datenbank heraus.
Was ist Oracle I/O Calibration eigentlich genau und was macht es?
I/O Calibrate ist ein Teil vom Oracle Ressource Manager Package und dient dazu direkt aus der Datenbank heraus mit vielen lesenden I/Os die Storage Anbindung auf Performance zu überprüfen.
Dabei werden zuerst beliebige Oracle Blöcke aus den Datenbank Files gelesen, womit man die maximale IOPS ermitteln kann. Dann werden sequenzielle Scans erzeugt um den maximalen Storagedurchsatz in MBPS zu ermitteln.
Wichtiger Hinweise: Die Ausführung belastet den Server und die Storage Infrastruktur und kann somit zu Störungen im Betrieb führen. Daher sollte man diese Messungen möglichst an Randzeiten durchführen.
Der Oracle Optimizer nutzt vorhandene I/O Calibrate Ergebnisse für die Berechnung der I/O Kosten von Statements.
Voraussetzungen für die Nutzung von I/O Calibration
Es kann nur als Datenbank Benutzer mit SYSDBA Privilegien gestartet werden.
- TIMED_STATISTICS muss auf TRUE stehen
- FILESYSTEMIO_OPTIONS muss auf SETALL stehen
- Die Datenbank Files müssen asynchrones I/O nutzen können, dies sollte durch FILESYSTEMIO_OPTIONS = SETALL sichergestellt sein.
I/O Calibrate Aufruf
Der Aufruf ist ein Teil vom DBMS_RESOURCE_MANAGER Package und ist in unserem Artikel zum Thema Datenbank I/O Calibration zu finden.
Hinweis: In aktuellen Oracle Datenbank Versionen, werden die Ergebnisse automatisch als Teil des Aufrufes von CALIBRATE_IO ausgegeben, und müssen nicht mehr extra ausgegeben werden.
Die Bedeutung von IOPS, MBPS und Latenz behandel wir im Webinar Storage Technologie nicht nur für Datenbanken.
Fallen bei der Nutzung von I/O Calibration
- Der Datenbank Server verfügt über zu wenig CPU Ressourcen, was speziell bei den IOPS dazu führt, dass nicht die Storage Performance sondern die CPU Limitation gemessen wird. Daher sollte man während eines I/O Calibration Laufs immer verifizieren, dass die CPU nicht der Engpass ist.
- Speziell bei Virtualisierung – und hier vor allem im SAN Umfeld – läuft man potentiell in Limitationen der Virtualisierungslösung.
- Die Datenbank ist kleiner als das Cache der Storage: Ergebnisse stimmen nicht mehr, sobald die Datenbank wächst und/oder die Storage belastet ist.
- Einfluss durch Auslastung der Infrastruktur (zb: andere VMs, Storageauslastung, etc.)
Aus diesem Grund sollte man während der IO Calibrate Läufe immer die CPUs im Auge behalten. In Video zu diesem Webinar zeigen wir einige Grafiken zu diesem Thema.
I/O Calibration richtig nutzen
Ergebnisse eines Laufs mit einer kleinen Datenbank (DBCA leer angelegt)
- Da die Datenbank in das Storage Cache Memory passen sollte, kann man damit feststellen, ob es Engpässe / Limitationen gibt oder nicht.
- Bei den IOPS sollte man zu über 90% an das Bandbreitenlimit heran kommen, bei MBPS sogar noch etwas darüber hinaus.
- Beispiel für 10GBbit NFS Anbindung mit Oracle dNFS und MTU=9000 und 8k Blocksize:
IOPS >= 125.000, MBPS >= 1000, Latenz - Hinweis: sollten die Werte deutlich unter den Bandbreitenlimits liegen, so muss man die Ursache ausfindig machen!
Ergebnisse mit einer Datenbank, die um Faktoren größer als das Cache der Storage ist
- Damit stellt man sicher, dass man die echte I/O Performanz ab dem Speichermedium gemessen bekommt.
- Sofern man nicht an Bandbreitenlimitationen stößt, sollte die Messung zur Sicherheit zu einem anderen Zeitpunkt wiederholt werden um aktuelle Belastungsspitzen durch andere Systeme auszuschließen.
- Vorsicht vor Storage, die Storage Tiering beherrscht. Hier kann es bei mehrfachen I/O Calibration Nutzungen zu einem Re-Tiering kommen.
Ergebnisse korrekt interpretieren
- Sind die Ergebnisse der Läufe mit kleinen und großen Datenbanken praktisch identisch und liegen diese Nahe der Bandbreitenlimits: Gratulation, so sollte es sein!
- Liegen die Ergebnisse mit den großen Datenbanken deutlich unter denen der kleinen Datenbank, dann ist die Storage bzw. die dort verbauten Speichermedien der limitierende Faktor. In diesem Fall werden Sie auch eine entsprechend höhere Latenz sehen.
- Liegen alle Ergebnisse deutlich unter der Bandbreite, so muss man analysieren woran dies liegt!
- Neben IOPS und MBPS ist aber auch die Latenz eine wesentliche Größe, diese sollte für die genutzte Speichermedien stimmig sein - siehe auch Webinar Storage Technologie nicht nur für Datenbanken.
Zusammenfassung
Mit I/O Calibration hat man in Oracle Datenbanken ein perfektes Tool zur Ermittlung der gegebenen Storage Performance aber auch ein Hilfsmittel zur Analyse ob es Probleme in diesem Bereich gibt.
Die Ergebnisse von I/O Calibration sind für den Oracle Optimizer relevant. Er kann diese für die Berechnung der Optimizer Kosten nutzen und so bessere Execution Pläne liefern.
Interesse an diesem Webinar geweckt?
Dann schauen Sie es sich doch direkt auf unserem Youtube Channel an: DB Masters Webinar: Oracle I/O Calibrate richtig einsetzen und verstehen.
Vergessen Sie nicht unseren Youtube Channel zu abonnieren, damit Sie keines unserer Videos verpassen!