Einfluss der Infrastruktur auf die Oracle Datenbank

Werbung
Einfluss der Infrastruktur auf die
Oracle Datenbank
Jeder sagt: “bei mir ist alles in Ordnung” –
und trotzdem geht alles langsam…
Datenbanken sind unsere Welt
www.dbmasters.at
Themenübersicht
●
●
●
●
●
Welche I/Os verursacht Oracle?
Auswirkungen von Latenzen?
Woher kommen die Latenzen?
Die geheime neue Technologie, um Latenzen zu eliminieren
Und noch einige Überlegungen Richtung SSD/Flash
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Welche I/Os macht Oracle?
●
●
●
●
●
I/O Arten: sync versus async, normal versus direct
Benutzer Server Prozess
Database Writer Prozess
Log Writer Prozess
Archiver Prozess
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
I/O Arten: sync versus async (im SAN)
Datenbank Server
SGA
DBWR
Filesystem Cache
acknowledge
SAN Fabric
SAN Storage
Synchroner I/O
● Der DBWR schreibt einen Block
und muss auf das Acknowledge
warten. Dann erst kommt der
nächste Block dran.
Asynchroner I/O
● Der DBWR schreibt ALLE Blöcke
sofort hintereinander und wartet
dann auf die Acknowledges.
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
I/O Arten: normal versus direct (im SAN)
Datenbank Server
SGA
DBWR
Filesystem
Cache
direct
SAN Fabric
normal
● Der Filesystem Cache ist
dazwischen geschalten.
direct
● Der Prozess umgeht das
Filesystem Cache.
Oracle SETALL
● Bedeutet DIRECT und ASYNC
SAN Storage
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Filesystem Cache versus Oracle Buffer Cache
● Findet ein Prozess einen Block im Oracle Buffer Cache, kann
dieser sofort genutzt werden Zugriffzeit im
Nanosekundenbereich (einige CPU Takte)
● Findet der Prozess den Block nicht, wird ein I/O generiert, der
vom Filesystem Cache bearbeitet wird. Ist der Block im FS Cache
wird, dieser in den Buffer Cache kopiert Zugriff im
Microsekundenbereich (einige 100 bis einige 1000 CPU Takte).
Overhead: zusätzliche „Applikation Context Switches“ auf der
CPU.
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Und wie sieht das ganze im NFS/NAS Bereich aus?
Normales NFS versus dNFS
Datenbank Server
SGA
DBWR
NFS Client
Normales NFS
dNFS
Storage LAN
NAS Storage
FS Cache
Bei NFS liegt das Filesystem (und das
Cache) in der Storage.
Normales NFS
● Der I/O Request wird über einen
NFS Client abgewickelt
dNFS
● Der I/O erfolgt über einen Oracle
internen NFS Client direkt ohne
Context Switches
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Falle von NFS
● Es gibt keinen „Filesystem Cache“ auf dem Server sondern im
Storage ein Zugriff, der bei einem lokalen Filesystem Cache
erledigt würde, muss jetzt über die Netzwerk Infrastruktur zum
Storage Zugriff im Millisekundenbereich (Latenzen).
● Aber:
Vergrößert man den Buffer Cache um jenes Memory, das der
lokale Filesystem Cache belegen würde, erhält man weniger
I/Os in Richtung Storage !! man ist schneller !!
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
dNFS versus normales NFS und SAN
● Beim normalen NFS und bei SAN muss der Datenblock vom
jeweiligen Oracle Prozess von/in den Buffer Cache kopiert
werden.
● Bei dNFS kann der Datenblock OHNE Zwischenkopie direkt
von/zu der Netzwerkkarte ins/vom Buffer Cache geschrieben
werden weniger CPU Belastung, keine I/O Waits.
In der Praxis: mindestens eine Verdoppelung der IOPS, sofern
die Infrastruktur mitspielt. Deutlich weniger CPU Auslastung !
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Benutzer Server Prozess
(nur lesen, ausgenommen Sort und Direct Path Verarbeitung)
● Bei einem Zugriff über einen Index
=> Verhalten: sync !!!
– Index Blöcke (root, branch, leaf) lesen – einen nach dem anderen –
bis es einen Treffer gibt
– Den Tabellen Block lesen
– Optional wieder zurück zum Index Block (wenn mehrere Treffer
existieren können)
● Einen Full Table Scan
=> Verhalten: async
– I/O Request für hintereinanderliegende Blöcke (abhängig von
verschiedenen Faktoren) maximal 1MB auf einmal.
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Database Writer Prozess
(nur schreiben, meist einzelne Blöcke)
● Mit Ausnahme von Bulk Inserts oder Insert APPEND schreibt der
DBWR immer nur einzelne Datenbank Blöcke zurück.
● Hier ist es entscheidend, ob das SYNC oder ASYNC erfolgen
kann.
● Filesystem Cache könnte theoretisch helfen (Write Back Cache) aber gerade bei Systemen, die unter hoher CPU Belastung
stehen, wird es eher langsamer Empfehlung: DIRECT
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Log Writer Prozess
(schreibt nur in die Online Logfiles)
● Die I/O Größe hängt von der Transaktionsgröße ab
Minimum/Vielfaches von: 512 Bytes
Maximum: 1MB
● Der LGWR ist immer DIRECT und SYNC
Nur damit kann Oracle bei einem Instance Crash garantiert
wieder Recovery durchführen.
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Archiver Prozess
(liest Online Logfiles und schreibt Archivelogs)
● Sequentielles lesen (möglichst Async) in MB Stücken
● Durch mehr Online Log Gruppen kann man kurzfristige
Transaktionsspitzen abfedern, so dass der ARCH Prozess nicht
ins Hintertreffen gerät und den LGWR blockiert (Archiver Hung)
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Auswirkungen von Latenzen?
● Wie wirken sich unterschiedlich lange Latenzen auf die
verschiedenen I/Os aus?
● Warum gibt es unterschiedliche Latenzen für Lesen und
Schreiben?
● Warum schwankt die Latenz abhängig von der I/O Anzahl?
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Wie wirken sich unterschiedlich lange Latenzen auf
die verschiedenen I/Os aus?
● Benutzer Prozess (SQL Verarbeitung)
– Bei Cache Hit Ratios von >= 99% bei OLTP Systemen muss im
Durchschnitt nur bei jedem 100ten Blockzugriff (Index Zugriffe)
überhaupt ein I/O zur Storage erzeugt werden mittlere Auswirkung
● Database Writer sowie Archiver
– Solange der DBWR und der ARCH seine I/Os „los werden“, ist die Latenz
nicht kritisch geringe Auswirkung
● Log Writer
– Der LGWR schafft bei 1ms pro I/O 1000 Transaktionen / Sec.
Bei 10ms pro I/O nur noch 100 Transaktionen und bei 100ms pro I/O nur
noch 10 Transaktionen / Sec extreme Auswirkungen
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Warum gibt es unterschiedliche Latenzen für Lesen
und Schreiben?
● Jedes Storage hat ein Read Cache …
– Beim Lesen kann ein Block im Read Cache stehen das Storage kann
sofort antworten Latenz typischerweise <= 1ms
– Muss das Storage auf der Disk lesen, wird der I/O in eine „Disk Queue“
gestellt selbst unter geringer Last sind 4-5ms schon sehr gut wenn
im schlechtesten Fall gerade viel in der „Disk Queue“ steht, kann es auch
einmal 50-100ms dauern!
● … und meist auch ein Write Cache
– Solange im Write Cache noch Platz ist, wird der Block dort abgelegt und
das Storage meldet „fertig“ typischerweise 1-2 ms
– Kommt das Storage mit dem Schreiben nicht nach siehe Read Cache
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Warum schwankt die Latenz abhängig von der I/O
Anzahl?
● Weil oft gelesene Bereiche von Disks im Storage Cache liegen I/O
Requests werden im Schnitt öfter aus dem Cache beantwortet
● Seltener gelesene Bereiche müssen immer über I/Os befriedigt werden
I/O Requests dauern immer mindestens 4-5 ms und teilweise viel länger
● Kommen zu viele I/O Requests im Storage an, beginnen die Disk Queues zu
wachsen I/Os dauern immer länger…
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Woher kommen die Latenzen?
Einige Beispiele und Infos
● Nutzung von File System Cache
● SPC Benchmarks (Storage Benchmarks)
– Direct Attached Storage
– SAN Storage / NAS Storage
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Ausgangsbasis:
Zugriff auf Datenblock im Buffer Cache
● Im Idealfall liegt ein Block schon im Buffer Cache der Oracle Datenbank
Instanz. Ein Zugriff (ermitteln wo der Block im Cache liegt) erfolgt über HASH
Chains und im Schnitt sind 4 Blöcke in der Chain bei aktuellen CPUs sollten
das in Summe nur einige wenige bis maximal 100 CPU Operationen sein.
● Eine CPU Operation bei einer x GHz CPU benötigt unter einer NANO Sekunde
gehen wir daher von einer durchschnittlichen Lookupzeit von 20-30 Nano
Sekunden aus in dieser Zeit kann der Block verarbeitet werden.
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Im Server – SAN mit Filesystem Cache
Alle Zeiten sind Beispiele und Schätzungen, von HW/SW abhängig!
●
●
●
●
●
●
●
●
Oracle Prozess: Block ist nicht im Buffer Cache
20-30ns
Erzeugen eines I/O Requests in Richtung FS Cache
10-100ns
Context Switch (im optimalen Fall, kein andere Prozess braucht die CPU)
10-30ns
Suche im FS Cache I/O weiter Richtung FS Treiber
20-100tens
Worst Case: ein Context Switch (bei einigen FS)
10-30ns
Filesystem übergibt den I/O an die Treiber
10-100ns
Context Switch (im optimalen Fall, kein andere Prozess braucht die CPU)
10-30ns
I/O Request Queue im Treiber und im HBA (warten bis man dran ist)
???
I/O Request geht auf die Leitung, siehe nächste Seite
Gesamtdauer: nicht unter 100ns (=0,1μs) , können aber viele ms werden!
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Die Physik….
Bei 10GBit Leitungen (Glasfaser)
● Latenz pro 1m Leitungslänge (ca. 1/3 Lichtgeschwindigkeit)
somit pro 100m
● I/O Request übertragen nur einige Bytes (unter 50)
Laufzeit im Kabel um 50 Bytes = 400 Bits zu übertragen
● 8k Daten brauchen für die Übertragung
10ns
1000ns
40ns
6-7000ns
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
SPC Benchmarks (SPC-1 = Block Based Benchmark)
http://www.storageperformance.org
● Hier findet man eine Menge von Storage Benchmarks, leider nicht 1:1 für
Oracle nutzbar…
– Es werden 4K Blöcke verwendet
– Es laufen immer mehrere „Streams“ / Sessions parallel
– Bei vielen Benchmarks wird nur das „Storage Cache“ gestresst, nicht die Disks
(relative kleine Datenmengen)
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Direct Attached Storage (SAN)
Beispiel Aus Benchmarks
● HP P6500, 515GB Datenbereich
– 2.000 IOPS
– 10.000 IOPS
– 16.000 IOPS
– 19.000 IOPS
– 20.003 IOPS (maximaler Durchsatz)
0,43ms Storage Cache
0,99ms Storage Cache
2,27ms Storage Cache
5,30ms
11,23ms
● XIO Emprise 5000, 4.6TB Datenbereich
–
–
–
–
600 IOPS
3000 IOPS
5700 IOPS
6066 IOPS (maximaler Durchsatz)
1,88ms Storage Cache
3,34ms Storage Cache
7,14ms
9,21ms
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
SAN (8 Gbit) / LAN (10 Gbit) Infrastruktur
I/O Request
● I/O Request sind nur einige Bytes (unter 50)
Laufzeit im Kabel um 50 Bytes = 400 Bits zu übertragen
● Latenz pro 1m Leitungslänge (ca. 1/3 Lichtgeschwindigkeit)
● Latenz im Switch
– Cisco Nexus 3548
– Cisco Nexus N6004
– Cisco Nexus N5500 Serie
– Cisco Catalyst 6500 Serie
5ns
10ns
ca. 300ns
ca. 1.000ns
ca. 2.000ns
ca. 11-15.000ns
● Worst Case: Warten im Switch, bis die Leitung frei wird
???
Gesamtzeit bei 100m Leitungslänge/Nexus 3548 nicht unter 1,3μs bis zu einige 10μs
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
SAN (8 Gbit) / LAN (10 Gbit) Infrastruktur
Datenblock über SAN/NAS
Im Prinzip das gleiche wie zuvor, allerdings
● 8k Daten brauchen mehr Zeit, bis diese übertragen sind
ca. 6-7μs
● NFS ohne Jumbo Frames: werden aus 8k in Summe 6 Einzelpakete !
???
● Jede Übertragung (jedes Paket) braucht ein Acknowledge –
Das kann man grundsätzlich nicht der Übertragung anlasten, es kann aber die Leitung
kurz blockieren
Gesamtzeit: um mindestens 6-7μs länger als der I/O Request, bei NFS ohne Jumbo
Frames kommen noch einige 100ns dazu.
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Zusammenfassung
SAN / LAN Infrastruktur Latenz - Optimalfall
● Mit neuester Hardware (Cisco Nexus 3548)
● Mit etwas älterer Hardware
● „Alte“ Hardware (Cisco 6500 Serie)
< 10μs
min 15μs
min 30-40μs
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
NFS Storage Benchmarks
http://www.spec.org/sfs2008/results/sfs2008nfs.html
● Hier geht es weniger um die Ergebnisse als um den Vergleich mit Direct
Attached Storages bei NFS muss ein Switch dazwischen sein…
● Die Ergebnisse sind daher praxisnäher.
● Erkenntnis aus den Benchmarks:
– Unter 0,6 ms bis 0,7ms (aus dem Storage Cache) kommt keiner
(EMC, NetApp,…)
– Viele schaffen es nicht unter 1ms !
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
SAN/NAS Benchmarks im Vergleich
● Interessant sind sowohl die IOPS als auch der Punkt, ab dem die Latenz
deutlich über 3ms steigt
Source: http://searchstorage.techtarget.com/New-Benchmark-Results-forUnified-Scale-Out-Storage
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Zusammenfassung der Erkenntnisse zur Latenz
●
●
●
●
Block im Oracle Buffer Cache (Memory)
Block im Filesystem Cache
Direct Attached Storage
SAN/NAS Storages
ca 0,02μs
>7μs (copy to BC)
>500μs
>6-700μs, eher >1ms
Was lernt man daraus?
Jeder Block, der schon im Memory der Instanz ist, muss nicht gelesen werden
das entlastet die Infrastruktur und bringt massive Performancevorteile für den
Benutzer!
So gesehen beginnt Infrastrukturtuning mit einem optimalen Sizing des Datenbank
Instanz Buffer Caches!
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Die geheime neue Technologie um Latenzen zu
eliminieren
● Wir stellen die geheime neue Technologie vor
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Die geheime neue Technologie ist
Nutze die aktuellen Möglichkeiten
bezüglich des Hauptspeicherausbaus
von Servern sinnvoll aus!
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Erinnern Sie sich an die Key-Note
SGA Sizing Projekt bei Egger
● Projekt ist aktuell noch ongoing, hier einige Beispiele
– SAP BW Landschaft
Buffer Cache von 60G auf 280G
Von 7.000-8.000 IOPS auf einige 100 IOPS
– SAP „EGP“ Datenbank
Buffer Cache von 60G auf 280G
Von 500 IOPs auf unter 100 IOPS
Pro Tag über 44 Stunde weniger I/O Wait, die beim Benutzer ankommen!
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Oracle „Huge Buffer Cache“ Datenbanken
Aktuelle Server können schon TBs an Hauptspeicher bereitstellen!
● Sie haben schon 99,87% Cache Hit Ratio?
● Der Memory Advisor sagt: „kein Bedarf an mehr Memory“ …
● Aber wie erklären Sie sich das?
–
–
–
–
V$DB_CACHE_ADVICE: 55% ESTD_PCT_OF_DB_TIME_FOR_READS
Über 99% der Verarbeitung ist I/O Wait
Bei einem Statement Cache Hit Ratio von über 99%
Wo aber häufig laufende Statements um den Faktor 100 schneller werden könnten…
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Kundenprojekt / SGA Sizing für SAP BW Landschaft
● Oracle Memory Advisor: alles OK, 60GB Buffer Cache sind perfekt
● Unsere Empfehlung: mindestens 200GB Buffer Cache, Umsetzung: 240GB
Vorher: 300MB/Sec, Peaks 450MB/Sec, 7.000-8000 IOPS, Peaks >10.000 IOPS
Nachher: wenige MB/sec, Peaks 40MB/Sec, wenige 100 IOPS, Peaks <1.000 IOPS
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Oracle 12c In-Memory Database Cache Option
SGA Bereich für In-Memory Cache
● In der SGA wird ein zusätzlicher Bereich –
der In-Memory Column Store bereitgestellt
● Sobald auf den Tabellen definiert ist, dass sie
In-Memory nutzen sollen, landen diese auch
im Column Store
● Innerhalb des Column Stores gibt es 1MB
große Column Units in denen die Daten
abgelegt werden.
● Verwaltungsstruktur (Transaktionsbereich)
umfasst ca. 15% des Column Stores
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Wie ist der Column Store aufgebaut
● Jede Column Unit gehört zu einer bestimmten
Tabelle (eine Tabelle belegt mehrere/viele
Column Units) und enthält die Daten von
aufeinanderfolgenden Daten (Rows)
● Die Daten werden aber nicht „zeilenweise“
(Row) sondern „spaltenweise“ (Column)
abgelegt – dabei werden diese nach der Spalte
sortiert und pro CU und Spalte gibt es einen
MAX und MIN Information hilft bei Queries,
CUs auszulassen, die keine relevanten Daten
enthalten.
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Was ist der Vorteil von In-Memory gegenüber anderen
Lösungen? (Marketingeinschaltung)
●
●
●
●
●
In Memory einschalten, Tabellen In-Memory aktivieren, fertig
Applikationsanpassungen: keine (außer drop Index)
Funktionseinschränkungen: keine, alle Features sind unterstützt
Migrationsaufwand: keiner
Änderungen bei Backup/Recovery: keine
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Full Database Caching
Offiziell ab Oracle 12.1.0.2
● Datenbank muss komplett ins Memory passen
● Bei FTS wird die Tabelle komplett in den Cache geladen
(davor nur dann, wenn auf der Tabelle das CACHE Attribut gesetzt war)
● Buffer Cache LRU wird deaktiviert
● Einschalten:
STARTUP MOUNT;
ALTER DATBASE FORCE FULL DATABASE CACHING;
ALTER DATABASE OPEN;
SELECT force_full_db_caching FROM V$DATABASE;
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Automatisches Big Table Caching
Speziell bei Parallel Query / DML
● Oracle 11gR2 / 12.1.0.1 Full Tables Scan bei Parallel Query/DML
– Die Tabelle wurde mit Direct Reads nur für die PQ/PX Prozesse eingelesen und
landete nicht im normalen Buffer Cache mehrere Abfragen auf die gleiche
Tabelle bedeutet mehrfaches Einlesen vom Storage
● Oracle 12.1.0.2
– Instanz Parameter
DB_BIG_TABLE_CACHE_PERCENT_TARGET
PARALLEL_DEGREE_POLICY
0 bis 90
AUTO oder ADAPTIVE
– Die „hottest“ Big Tables werden auch bei Parallel Verarbeitung ins Buffer Cache
geladen, solange es sich ausgeht.
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Zusammenfassung: Hauptspeicher um Latenzen zu
eliminieren
● Einfach nur jeder Datenbank viel mehr Hauptspeicher zu geben bringt auch
nichts
● Die Memory Advisors von Oracle helfen nicht weiter, weil diese nicht mit viel
mehr Memory „umgehen“ können. Sie betrachten nur maximal eine
Verdopplung des SGA Memorys.
● Eine Analyse und eine Empfehlung für das Memory-Sizing dauert pro
Datenbank Instanz maximal eine Stunde.
– Wir empfehlen aber trotzdem, die ganze Infrastruktur zu betrachten!
DB Masters kann Sie bei solchen Vorhaben optimal unterstützen!
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Und noch einige Überlegungen in Richtung SSD/Flash
●
●
●
●
Wie passt SSD in das Bild?
Die Planung der Infrastruktur ist entscheidend…
Storage Eigenheiten muss man verstehen…
Glaube keinem Benchmark, den Du nicht selbst gefälscht hast..
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Wie passt SSD in das Bild?
● Server SSDs haben Zugriffszeiten von
Intel sagt avg. Latency: 80μs andere Hersteller reden von 65μs
● Nutzung im Storage?
– Direct Attached Storage
– SAN/NAS Storages
unter 0,01ms
>= 0,5ms
>= 0,6ms
● SSD machen in Storages durchaus Sinn
– 0,5ms ist verglichen mit >4ms (HDD) Faktor 8
● Aber
– Die wirkliche Performance entfalten diese nur im Server (oder wie bei Exadata von Oracle,
wenn die Verarbeitung auf dem Storage Node erfolgt)
– Oracle Feature: Flash Cache – Erweitern des Buffer Caches mit Flash Cache im Server
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
spezielle SSD-only Storages
Beispiel: Texas Memory Systems RamSan Serie
Was ist so besonders?
● Hohe CPU Leistung in der Storage
● Optimierung für SSD Zugriff
● Dadurch geringere Latenzen
Beispiel für Direct Attached
– < 150.000 IOPS Latenz < 0,3ms
– ~ 330.000 IOPS Latenz ~ 1ms
● Je nach Infrastruktur kommen noch
mindestens 5-10 μs dazu
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Die Planung der Infrastruktur ist entscheidend…
●
●
●
●
Jede aktive Infrastrukturkomponente hat Latenzen
Jeder unnötige Meter Kabel addiert Latenz
Die Wahl der aktiven Komponenten wirkt sich merklich aus
SAN und NAS sind bei neuen Lösungen (Nexus 3548) gleich performant, mit
dNFS ist man (zumindest auf der Server Seite) schneller als mit SAN
Lösungen
● usw.
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Storage Eigenheiten muss man verstehen…
● Jedes Storage hat Eigenheiten
– Wo ist diese besonders gut
– Was wurde dem Storage aufgrund „Marktdrucks“ angeflanscht
– Wie funktioniert das Storage intern
● Beispiel: NetApp mit WAFL FileSystem
– Snapshots kosten keine Performance
– Intelligenz in der Storage mit SW (SnapManager, Deduplizierung,…)
– Aber WAFL sorgt dafür, dass Files mit der Zeit immer weiter verstreut werden
Full Table Scans/Backups werden zu Random I/O
– Aber dafür sind LGWR/DBWR I/Os meist schneller als bei anderen Herstellern
(WAFL Write Eigenschaft)
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Glaube keinem Benchmark, den Du nicht selbst
gefälscht hast!
● Jeder Hersteller versucht bei Benchmarks bis zum Letzten zu optimieren
in der Praxis werden Sie viel weniger Energie in die Optimierung stecken
● Leider gibt es keine Benchmarks mit vorgegebenen Oracle Datenbanken
gegen verschiedene Storages…
● Die verschiedenen Benchmarks spiegeln nicht das I/O Verhalten einer
Datenbank wieder…
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Zusammenfassung
● Wir haben Kunden / Projekte, wo wir die Quellen für die Latenzen analysieren – und
wir lernen immer wieder etwas Neues
● Es gibt viele Details zu beachten – und jeder hat seine eigene Sicht der Dinge:
– Infrastruktur / Netzwerk: Bei mir ist alles im grünen Bereich – nur leider zeigen die
Monitoring Tools nur Minuten Averages und keine Peaks
– Infrastruktur (meist SAN): also bei mir dauert kein I/O mehr als 2ms.
Falsch: erstens ist das ein Durchschnittswert, zweitens wird auf der FC Fabric gemessen (der
Weg zum Server wird nicht berücksichtigt)
– Storage Kollege: Die Storage Auslastung liegt unter 50% - ja, aber wie sieht es mit den I/O
Queues der einzelnen Disks/Diskgruppen aus?
– OS Admin: Alle I/Os sind unter 5ms fertig – ja, weil die I/Os, die Oracle gar nicht erst
abschicken kann (max outstanding I/Os, SYNC,…), nur innerhalb der Datenbank gemessen
werden…
Einfluss der Infrastruktur auf die Oracle Datenbank
Datenbanken sind unsere Welt
www.dbmasters.at
Herunterladen