+ All Categories
Home > Documents > Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue...

Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue...

Date post: 03-Jan-2021
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
47
Transcript
Page 1: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,
Page 2: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Maschinensizing

Martin Klier

Performing Databases GmbHMitterteich

@MartinKlierDBA Maschinensizing 2/47

Page 3: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

3/47

Referent

● Martin Klier● Lösungsarchitekt und

Datenbankspezialist

● Fachliche Schwerpunkte:– Performanceoptimierung / Tuning– hochverfügbare Systeme– Cluster und Replikation

● Linux seit 1997● Oracle Database seit 2003

@MartinKlierDBA Maschinensizing

Page 4: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Referent

● Vorträge

● Kontakt: [email protected]

● Weblog: http://www.usn-it.de

4/47

Regionalgruppen

@MartinKlierDBA Maschinensizing

Page 5: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Unternehmen

● Spezialisten für Datenbanktechnik– Konzeptberatung und Vergabekompetenz– Architektur- und Systemplanung– Lizenzierung– Realisierung und Troubleshooting

● Kontakt– Performing Databases GmbH

Wiesauer Straße 2795666 Mitterteich

– Web: http://www.performing-databases.com– Mail: [email protected]– Twitter: @PerformingDB

5/47@MartinKlierDBA Maschinensizing

Page 6: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

6/47

„Software ist ein Gas:Sie füllt den zur Verfügung stehenden Raum

vollständig aus.“

(E.J., SW-Entwicklungsleiter)

@MartinKlierDBA Maschinensizing

Page 7: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

So what?

7/47

+ €€€ =

@MartinKlierDBA Maschinensizing

Page 8: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

So what?

8/47

- €€€ =

@MartinKlierDBA Maschinensizing

Page 9: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

9/47

„Die auf einen Tagesordnungspunkt verwendete Zeit ist umgekehrt proportional zu

den jeweiligen Kosten.“

(C.N. Parkinson, 1957)

@MartinKlierDBA Maschinensizing

Page 10: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Szenario

10/47@MartinKlierDBA Maschinensizing

Page 11: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Anforderungen I

11/47

Der neue DB-Server:

– (Ich weiß noch nicht was ich brauche, also:)Kann alles

– Kostet wenig

– Ist 100% ausfallsicher

– 10 Jahre investitionssicher

MfG, Ihre Fachabteilung

@MartinKlierDBA Maschinensizing

Page 12: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Anforderungen II

12/47

Der neue DB-Server:

– Hardwarestandard: Doublemicro FunWare 19“ 2HE– Betriebssystem Maubux Version 7.3.223– 4 Jahre Gewährleistung– 2 CPUs / 12 Cores– 2 HHDs 300GB 15.000rpm– 2 NICs 1Gbit Fabrikat X Typ Y – 1 FC HBA Fabrikat X Typ Y– Storage über FibreChannel: 5 EUR / GB – Abweichung nicht zulässig, sonst kein

Hosting/Support

MfG, Ihr Rechenzentrum@MartinKlierDBA Maschinensizing

Page 13: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Anforderungen III

13/47

Der neue DB-Server:

– Oracle Database 11.2.0.2.8 ist Vorgabe11.2.0.3 evaluieren wir gerade,11.2.0.4 führen wir gar nicht mehr ein, wir gehen dann sowieso auf 12

– Enterprise Edition per ULA– kein ASM (wg. Lizenz)– kein Dataguard (kennen wir nicht)– RAC würden wir unterstützen

wir wollen in dem Bereich Know How aufbauen

MfG, Ihre Datenbanktechnik

@MartinKlierDBA Maschinensizing

Page 14: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Architekt

14/47

Und noch hat nicht einmal jemand ermittelt, was wirklich NOTWENDIG ist ...

@MartinKlierDBA Maschinensizing

Page 15: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Ressourcen

15/47@MartinKlierDBA Maschinensizing

Page 16: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Systemressourcen

16/47

● CPU

● RAM

● Massenspeicher

● Netzwerk

@MartinKlierDBA Maschinensizing

Page 17: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

CPU

17/47

● Relevant: „Leistung“

● Spezifikationen, gemessen in:– (Millionen) Instruktionen pro Sekunde (MIPs)– Anzahl Gleitkomma-Operationen (FLOPS) – Leerlauf-Maximaltakt (BogoMIPS)– NICHT: Taktrate (GHz)

● Für:– Speicherzugriffe– Hash/Sort/Merge– Berechnungen– Syscalls– => alles :) Lize

nzieru

ng

@MartinKlierDBA Maschinensizing

Page 18: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

RAM

18/47

● Relevant: Größe, Performance

● Spezifikationen, gemessen in:– Kapazität (Gigabytes)– Speichertransferrate (GB/s)– Latenzzeit (Nanosekunden)

● Für:– Caching (Buffer, Redo, Cursors …)– Verwaltung / Metadaten (Shared Pool …)– ausf. v. Binaries (Code Area)– Hash/Sort/Merge (PGA)– ...

@MartinKlierDBA Maschinensizing

Page 19: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Massenspeicher

19/47

● Relevant: Größe, Performance

● Spezifikationen, gemessen in:– Kapazität (Terrabytes)– Schreib-/Lese-Bandbreite (MB/s)– Latenzzeit (Millisekunden)

● Für:– Datenablage (Tablespaces)– Cache-Absicherung (Redo-Logs)– Metadaten (Control File, spfile)– Datensicherung (Backups)– ...

@MartinKlierDBA Maschinensizing

Page 20: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Netzwerk

20/47

● Relevant: Durchsatz, Latenz

● Spezifikationen, gemessen in:– Bandbreite (Gigabit/s)– Latenz (Millisekunden)

● Für:– User-Zugriffe (TNS, OCI, jdbc)– Datenbank-Links (TNS)– RAC Cluster Interconnect (u.a. Multicast)– ...

@MartinKlierDBA Maschinensizing

Page 21: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Ressourcen-Nutzung

21/47@MartinKlierDBA Maschinensizing

Page 22: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

22/47

TEMP

Lesevorgang

Listener:1521

SGA

PGAs

Session

Tablespace

Blöcke

Sort,Hash,Merge

Shared Pool

select ... ;

Buffer Cache

@MartinKlierDBA Maschinensizing

Page 23: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

23/47

TEMP

Daten-Änderung

Listener:1521

SGA

Buffer CachePGAs

Session

Tablespace Undo Tbs.

Blöcke

Shared Pool

update ...;

Log Buffer

Online

Redo

Logs

ArchivedRedoLogs

ARCn

CKPT

DBWn

LGWR

@MartinKlierDBA Maschinensizing

Page 24: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Detail-Beispiele

24/47@MartinKlierDBA Maschinensizing

Page 25: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

25/47

Library CacheObject

Session 1

Session 2

Sleep = WaitS2 spinning on M.

M

S1 holding Mutex

cursor: mutex Scursor: mutex X...

Bsp. 1: Parsing

@MartinKlierDBA Maschinensizing

Page 26: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

26/47

Bsp. 2: Find Free Buffer

CBC 4F BH 1 BH 77

Session 1

Session 2

Spin

Sperrt die Cache Buffer Chain(s) während Suche

CBC 51 BH 99 BH 32

latch: cache buffer chain

Wartet wg. (falscher?) Konkurrenz

@MartinKlierDBA Maschinensizing

Page 27: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Herangehensweise

27/47@MartinKlierDBA Maschinensizing

Page 28: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

1. Schritt

Taktische und Strategische Orientierung

– Wieso gibt es das Projekt?

– Wer wird das neue System ● nutzen?● betreuen?● warten?

– An was wird es gemessen?

@MartinKlierDBA Maschinensizing 28/47

Page 29: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

2. Schritt

Abfragen der geplanten Last

– In abstrakten Begriffen

– Direkt beim Verursacher (=Fachabteilung?)

– Natur der Belastung erforschen

Beispiele:– „Wie oft wird der Dialog ausgeführt?“– „Wie viele Daten bilden die Basis für den Report?“

@MartinKlierDBA Maschinensizing 29/47

Page 30: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

3. Schritt

make techspeak I

– 1 Dialogaufruf = wieviele Abfragen?

– 1 „OK“-Button= 1 Transaktion??= wieviele Änderungen?

– 1 Massen-Ladevorgang= wieviele GB (pro Sekunde?)

@MartinKlierDBA Maschinensizing 30/47

Page 31: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

3. Schritt

make techspeak II

– 1 Dialogaufruf = wieviele Parsing-Vorgänge?= wieviele Read IOs / Write IOs?

– 1 „OK“-Button= wieviele Write-IOs?= wieviele Read-IOs?

– 1 Massen-Ladevorgang= wieviele Write-IO / Sekunde?= wieviele Transaktionen / Sekunde?

@MartinKlierDBA Maschinensizing 31/47

Page 32: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Meine Faustregeln

Damit „kann man anfangen“:

– Buffer Cache = 7x Segmentgröße-to-be-cachedhttp://arup.blogspot.de/2011/04/can-i-fit-80mb-database-completely-in.html

– Anzahl Cores = 2x (Anzahl PX-Worker + HG-Prozesse)

– OLTP: pro 200GB Tablespace => 10GB Undo TBS

– OLTP: pro 1000 User Calls/s => 5GB Temp TBS

– OLTP: pro Transaktion => 5 IOs x Anzahl Tabellen

@MartinKlierDBA Maschinensizing 32/47

Page 33: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Sizing

33/47@MartinKlierDBA Maschinensizing

Page 34: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Sizing Mantra

34/47

● Kenne ich meine Applikation? Sonst bin ich hier falsch.● Kenne ich meine Applikation? Sonst bin ich hier falsch.● Kenne ich meine Applikation? Sonst bin ich hier falsch.● Kenne ich meine Applikation? Sonst bin ich hier falsch.

● Aber was, wenn trotzdem … ?– Forschen– Forschen– Forschen

– Beobachten (AWR/ASH ...)

– Messen(top, iostat ...)

http://www.haus-der-kleinen-forscher.de

@MartinKlierDBA Maschinensizing

Page 35: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Sizing Mantra

35/47

● Keine Standardkomponenten selbst benchmarken– Extrem schwierig, die korrekte Workload zu

definieren– Vergleich zwischen Systemen nur mit extremem

Aufwand machbar

● Komponenten blockweise testen:– CPU + RAM (Whetstone etc.)– Massenspeicher + SAN (ORION)– Netzwerk end-to-end – Datenbank (HammerDB, SwingBench ...)

● Optimal: Komplett-Benchmark

@MartinKlierDBA Maschinensizing

Page 36: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Benchmarking

36/47@MartinKlierDBA Maschinensizing

Page 37: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Aufbaumodell

37/47

1) Bestandsaufnahme (funktionierendes und beanstandetes System)a) Rahmenbedingungen festhalten

(Systemumgebung, Lastsituation)b) Kriterien definieren

(Auf was kommt es mir an?)

2) Maßstäbe ableitena) User experience?

(Dialogperformance, Batchdauer ...)b) Systembelastung?

(Cloud-Kosten, Energieverbrauch ...)

@MartinKlierDBA Maschinensizing

Page 38: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Aufbaumodell

38/47

3) Erstellen eines eigenen Benchmarksa) künstlicher Lastgenerator?b) reale Belastung der Applikation?

4) Vermessung einer Referenzarchitektura) „Typisches System“ als Baselineb) „Typische Lastsituation“ nachstellen

5) Skalierungsfaktoren feststellena) Systemgröße variieren

(nur Extreme abdecken)b) Belastung mögl. feingranular verändern

(hohe Datenqualität als Basis)

@MartinKlierDBA Maschinensizing

Page 39: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Alternative 1

39/47

1) Standard-Benchmarka) mögl. Passenden aussuchenb) Vermessung eines Referenzsystems

2) In Relation zu eigener Erfahrungmit der Applikation setzen

@MartinKlierDBA Maschinensizing

Page 40: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Alternative 2

40/47

1) Aufzeichnen Real-Last a) Oracle Real Application Testing

(EE Option)b) Applikationsmittel

(Journal erstellen)

2) Abspielen auf anderer Umgebunga) Realitätsgrad kann Herausforderung sein

(Zeitlische Verschränkung vs. Datenintegrität)b) Logische Änderungen nicht abbildbar

ohne Applikation zu ändern

@MartinKlierDBA Maschinensizing

Page 41: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Skalierung

41/47@MartinKlierDBA Maschinensizing

Page 42: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

42/47

Antwortzeit

Verarbeitete Workload (tx/s) --->

Ant

wor

tzei

t (s/

tx)

--->

Teuer Vernünftig

Riskant

@MartinKlierDBA Maschinensizing

Page 43: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

43/47

Antwortzeit

Verarbeitete Workload (tx/s) --->

Ant

wor

tzei

t (s/

tx)

--->

Teuer+

vernünftig

@MartinKlierDBA Maschinensizing

Page 44: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Abschluß

44/47@MartinKlierDBA Maschinensizing

Page 45: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Weiterdenken

45/47

1) Gefühla) schlechter Ratgeber beim Übertragen von

Ergebnissen (Schmetterlingseffekt)b) guter Indikator beim Beurteilen von Messwerten

(Realistisch?)

2) Durchschnitt ruleza) Eine Messung ist keine Messungb) Ein Erfolg ist noch kein Erfolg

3) Theorie ist gut, Praxis ist aber auch wichtig

4) Life Long Learning: immer besser werden

@MartinKlierDBA Maschinensizing

Page 46: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Q & A

46/47@MartinKlierDBA Maschinensizing

Page 47: Maschinensizing - Performing Databases · 2018. 10. 22. · Anforderungen III 13/47 Der neue DB-Server: – Oracle Database 11.2.0.2.8 ist Vorgabe 11.2.0.3 evaluieren wir gerade,

Recommended