Wie definiert und berechnet man Storage

Report
Wie definiert und
berechnet man
Storage-Performance?
Mathias Riediger
Systems Engineer
1
Agenda
 Performance-Theorie
 Performance im Storage System
 Performance bewerten
 Take-away
2
Sum
>128k
64K-131071
32K-65535
16K-32767
8K-16383
4K-8191
2K-4095
1K-2047
512-1023
0-511
Was wir in 30min nicht machen...
3000000
2500000
2000000
1500000
1000000
500000
0
3
Etwas Theorie ...
4
Theorie zu Performance
Was macht man heute wenn man sich mit einem
Thema beschäftigt?
Richtig!
5
Theorie zu Performance
Also google befragt:
Was ist Performance?
6
Theorie zu Performance
Antwort:
7
Theorie zu Performance
8
Theorie zu Performance
OK, Google auf deutsch befragt:
Was ist Geschwindigkeit?
9
Theorie zu Performance
Antwort:
10
Theorie zu Performance
AAAAh.....
11
Theorie zu Performance
Definition Geschwindigkeit:
Weg
Geschwindigkeit =
Zeit
s
oder
v=
t
12
Theorie zu Performance
Geschwindigkeit wahrnehmen bzw. spüren:
240km/h
150km/h
schnell
naja, eher langsamer 
Da kommen wir nochmal `drauf zurück....
13
Theorie zu Performance
Wie passt das jetzt alles zu Storage Performance?
s
v=
t
14
Theorie zu Performance
Wie passt das jetzt alles zu Storage Performance?
s
v=
t
Kein guter Ansatz
15
Theorie zu Performance
Parameter für Storage Performance?
MB/s & IOPs
Daten & Operationen pro Sek.
Latenz
Antwortzeit/Dauer einer Operation
„Randomness“
sequentiell oder durcheinander
Concurrency
???
Grösse der Operationen
Blockgrössen
Typ der Operationen
read, write, getattr, setattr, etc.
Working Set Grösse
aktive Daten im Zugriff
16
Theorie zu Performance
Concurrency - Little‘s Law:
Little‘s Gesetz besagt, dass die durchschnittliche Anzahl
von Kunden (L) in einem Wartesystem, welches sich in
einem stabilen Zustand befindet, gleich dem Produkt
ihrer durchschnittlichen Ankunftsrate (λ) und ihrer
durchschnittlichen Verweildauer (W) im System ist.
L=λ*W
17
Theorie zu Performance
18
Theorie zu Performance
Concurrency - Little‘s Law:
Little‘s Gesetz besagt, dass die durchschnittliche Anzahl
von Kunden (L) in einem Wartesystem, welches sich in
einem stabilen Zustand befindet, gleich dem Produkt
ihrer durchschnittlichen Ankunftsrate (λ) und ihrer
durchschnittlichen Verweildauer (W) im System ist.
L=λ*W
19
Theorie zu Performance
1. Beispiel Geldautomat:
1 Kunde pro Minute (λ)
1 Minute Ausgabezeit am Automaten (W)
Anzahl Kunden am Automaten (L)
L = λ * W = 1 * 1 = 1 Kunde am Automat
=> stabiles System, pro Min. kommt und geht einer
20
Theorie zu Performance
2. Beispiel Geldautomat:
2 Kunden pro Minute (λ)
1 Minute Ausgabezeit am Automaten (W)
Anzahl Kunden am Automaten (L)
L = λ * W = 2 * 1 = 2 Kunden am Automaten
Aber: einer wartet, einer hebt Geld ab
nach 1 Min. geht einer, es kommen zwei neue
=> instabiles System, Schlange wird länger
21
Theorie zu Performance
2. Beispiel Geldautomat:
2 Kunden pro Minute (λ)
1 Minute Ausgabezeit am Automaten (W)
Anzahl Kunden am Automaten (L)
Ausweg:
Ausgabezeit am Automaten halbieren oder 2. Automat
L = λ * W = 2 * 0.5 = 1 Kunde am Automat
L = λ * W = 2 * 1 = 2 Kunden an 2 Automaten
22
Theorie zu Performance
1. Beispiel Geldautomat:
1 Geldautomat
=> Concurrency = 1
=> 1 Kunde / Min.
23
Theorie zu Performance
2. Beispiel Geldautomat:
2 Geldautomaten
=> Concurrency = 2
=> 2 Kunden / Min.
24
Theorie zu Performance
Little‘s Law im Storage System:
Ankunftsrate im System
=>
IOs / Sek.
Verweildauer im System
=>
Latenz
Concurrency = (IOs / Sek.) * Latenz
25
Theorie zu Performance
Parameter für Storage Performance?
MB/s & IOPs
Daten & Operationen pro Sek.
Latenz
Antwortzeit/Dauer einer Operation
Randomness
sequentiell oder zufällig
Concurrency
IOPs * Latenz
Grösse der Operationen
Blockgrössen
Typ der Operationen
read, write, getattr., setattr.
Working Set Grösse
aktive Daten im Zugriff
26
Performance im
Storage System
27
Was soll das jetzt mit „Concurrency“?
Wer kopiert eine Datei schneller ?
# dd if=/tmp/source of=/tmp/target bs=64k
7.23 MB/sec
(1000ms / 4.3ms = 232.5
232.5 * 64K / 2 = 7.23 MB/sec)
bis240km/h
25.000 IOPs
4.3ms mittlere Latenz
4.60 MB/sec
(1000ms / 6.8ms = 147.1
147.1 * 64K / 2 = 4.60 MB/sec)
150km/h
bis 45.000
IOPs
6.8ms mittlere Latenz
28
Was soll das jetzt mit „Concurrency“?
Wer bietet insgesamt mehr Durchsatz?
1000ms / 4.3ms
25.000 / 232.5
107.5 * 7.23 MB/sec
= 232.5
= 107.5
= 777.4 MB/sec
1000ms / 6.8ms
45.000 / 147.1
305.9 * 4.6 MB/sec
= 147.1
= 305.9
= 1407.2 MB/sec
bis240km/h
25.000 IOPs
4.3ms mittlere Latenz
150km/h
bis 45.000
IOPs
6.8ms mittlere Latenz
29
Was soll das jetzt mit „Concurrency“?
bis240km/h
25.000 IOPs
4.3ms mittlere Latenz
Was war bei dieser Betrachtung
neben Latenz und IOs pro Sekunde
noch wichtig?
150km/h
bis 45.000
IOPs
6.8ms mittlere Latenz
30
Der magische Performance Quadrant
kleine
Blöcke
Random
Random
Read
Write
große
Blöcke
Sequential
Sequential
Read
Write
strukturierte
Daten
unstrukturierte
Daten
© Georg Mey
31
Was soll das jetzt mit „Concurrency“?
Wer kopiert eine Datei schneller ?
# dd if=/tmp/source of=/tmp/target bs=4k
7.23 MB/sec (4K)
(1000ms / 4.3ms = 232.5
232.5 * 4K / 2
= 465 KB/sec)
bis240km/h
25.000 IOPs
4.3ms mittlere Latenz
4.60 MB/sec (4K)
(1000ms / 6.8ms = 147.1
147.1 * 4K / 2
= 294 KB/sec)
150km/h
bis 45.000
IOPs
6.8ms mittlere Latenz
32
Concurrency
 Ein “single threaded” Workload zeigt wie schnell
ein Speichersystem sein kann.
… aber …
 Ein “single threaded” Workload wird niemals
demonstrieren, wie viel Last (Performance) ein
Speichersystem tragen kann!
33
Worüber haben wir noch gar nicht
gesprochen?
34
Performance bewerten
35
perfstat!!! ....yes!!!
Wer kennt folgenden Dialog?
Kunde:
Das ist langsam!
NetApp:
Was ist langsam?
Kunde:
Die Datenbank!
NetApp:
Hmm, da brauch‘ ich mal nen perftat!
36
perfstat – kleiner Tipp...
perfstat gibt‘s als GUI-Tool, ohne Installation!
http://mysupport.netapp.com/NOW/download/tools/gui_ntap_support/
37
perfstat – Worauf gucken die?
Who cares?
38
CPU–Auslastung
 Solange die Latenzen in Ordnung sind,
ist die CPU-Auslastung egal!
 Ontap ist kein präemptives Multitasking System,
sondern hat ein Domänen-Konzept!
 „Don‘t worry about 100% CPU utilization.
Filer is doing Filer things!“
39
Latenzen – was kann ich max./min.
erwarten?
IO Operationen mit kleinen Blöcken (FAS62xx)
Operation
Read from
Read from
Read from
Read from
Read from
Write to
Medium
Controller Cache
Flash Cache
Flash Pool / SSD
10k SAS Disk
7.200 SATA Disk
Controller Cache
Latenz in Millisek.
0.1
0.3
0.5
6.6
12.7
0.3
40
perfstat – Worauf gucken die?
 wafl_susp – w:
.....
wafl_reads from cache =
1995844
wafl_reads from ext_cache =
758634
wafl_reads from disk =
173595
…..
41
Take-away
42
Take-aways
 Solange die Latenzen in Ordnung sind,
ist die CPU-Auslastung egal!
 Concurrency/Parallelität ist wichtig!
 Performance ist ein ein kompliziertes Gemisch aus
%read, %write, %random, %sequential, latency,
concurrency, block size, operation type
=> alles muss gesamtheitlich betrachtet werden
 Latenz ist eines der wichtigsten Kriterien!
43
Herzlichen
Dank!
44

similar documents