Da unser Entwicklungsserver bei Hetzner immer mal unter sehr hoher IO-Last leidet, stand ein Hardware-Upgrade an. Um zukünftig eine gute Entscheidungsgrundlage zu haben, habe ich auf dem neuen und dem alten System mal ein paar Messungen der IO-Performance durchgeführt.
Die Tests wurden jeweils im Rescue-System mittels bonnie++ ausgeführt. Der RAM wurde mittels Ram-Disk fast komplett gefüllt, um Caching-Effekte zu minimieren.
System 1: EQ5 mit 2x 1,5 TB SATA 7.200u/min im Software-Raid
System 2: EX6 mit 2x 3 TB SATA 7.200u/min im Hardware-Raid (Adaptec)
System 3: EX6 mit 2x 300 GB SAS 15.000u/min im Hardware-Raid (Adaptec)
System 4: EQ8 mit 120 GB SSD
| Version 1.96 | Sequential Output | Sequential Input | Random Seeks |
|||||||
| Concurrency | Size | Block | Rewrite | Block | ||||||
| K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | /sec | % CPU | |||
| System1 | 5 | 10000M | 97955 | 11 | 64593 | 7 | 135381 | 8 | 296.2 | 5 |
| Latency | 422ms | 548ms | 116ms | 113ms | ||||||
| System2 | 5 | 50000M | 152502 | 8 | 96655 | 7 | 335732 | 12 | 451.1 | 13 |
| Latency | 730ms | 573ms | 139ms | 195ms | ||||||
| System3 | 5 | 50000M | 188181 | 11 | 122138 | 9 | 331598 | 13 | 687.5 | 20 |
| Latency | 463ms | 400ms | 143ms | 116ms | ||||||
| System 4 | 5 | 28000M | 212558 | 14 | 87064 | 9 | 279109 | 13 | +++++ | +++ |
| Latency | 328ms | 3432ms | 157ms | 2177us | ||||||
Fazit
Der Raid-Controller holt aus den fast identischen SATA-Festplatten deutlich mehr heraus. Die Geschwindigkeit der verteilten Zugriffe steigt aufgrund des Cachings und einer besseren Optimierung der Zugriffe auf die Festplatten deutlich. Durch den Einsatz der SAS-Festplatten lässt sich dieser Wert nochmals deutlich steigern, was in erster Linie an der mit der doppelten Drehgeschwindigkeit verbundenen reduzierten Zugriffszeit liegen dürfte. Das Ergebnis zeigt sich beispielweise im Rewrite-Test, bei dem Daten gleichzeitig gelesen und geschrieben werden.
Damit lohnt sich der Einsatz der SAS-Platten vor allem bei Servern mit vielen verteilten Zugriffen (vor allem Datenbanken und Systemen mit permanent hoher IO-Last). Eine preiswerte Alternative ist der Einsatz eines Controllers an den vorhandenen SATA-HDDs (diese müssen jedoch dazu neu formatiert und das System neu aufgespielt werden). Insbesondere wenn schon ein Flexi-Pack vorhanden ist, kann man mit 15 bzw. 13 € die Leistung des Servers deutlich steigern.
Zum Vergleich habe ich noch ein System mit SSD herangezogen. Währen die Schreibgeschwindigkeit über derer des SAS-Systems liegt, ist die Lesegeschwindigkeit geringer. Die kombinierte Lese/Schreibgeschwindigkeit liegt im guten Mittelfeld. Bei den zufälligen Zugriffen liegt die SSD in einem für bonnie++ nicht mehr messbaren (extrem guten) Bereich. Damit eignet sich eine SSD für den extrem verteilten Zugriff auf kleine Datenmengen (z.B. als Cache/Swap). Für großen Datenmengen ist sie aufgrund ihrer Größe und dem damit verbundenen Preis pro GB Daten nur bedingt geeignet. Es gilt zu bedenken, dass auch SSDs im Raid-Verbund verwendet werden sollten.
Überprüfung der Ergebnisse
Da es bei bonnie++ ggf. zu Verfälschungen der Ergebnisse durch Cache-Effekte kommen kann, wurden die Tests mit “dd” und “Direct I/O” überprüft:
Lesen: dd if=/dev/VolData2/SSDTest1 of=/dev/null bs=1M count=5000 iflag=direct
Schreiben: dd if=/dev/zero of=/dev/VolData2/SSDTest1 bs=1M count=5000 oflag=direct
Die Ergebnisse sind bis auf System 1 ähnlich den mit bonnie++ ermittelten:
System 1: Lesen 75 MB/s, Schreiben: 75 MB/s
System 2: Lesen 290 MB/s, Schreiben: 151 MB/s
System 3: Lesen 356 MB/s, Schreiben: 209 MB/s
System 4: Lesen 275 MB/s, Schreiben: 216 MB/s
Die Anzeige mittels “dstat” bei System 1 hat gezeigt, dass bei Direct I/O die Zugriffe nicht auf die beiden HDDs im Raid verteilt werden. Dies führt zu einem starken Leistungseinbruch. Interessant ist dies vor allem beim Einsatz von virtuellen Maschinen, da diese in der Regel via Direct I/O auf Container-Partitionen zugreifen (ein ähnliches Verhalten zeigt sich auch im produktiven Betrieb bei uns).
Update vom 9.2.2012
Heute haben wir einen neuen EX 4S aufgesetzt. Dieser hat im Gegensatz zum EX 6 keine “Enterprise SATA HDDs”, sondern ganz normale. Zum Einsatz kam wieder ein Hardware Raid-1 (Adaptec). Hier die Ergebnisse der Messung mit dd und Direct I/O:
System 5: Lesen 314 MB/s, Schreiben: 160 MB/s
Von den HDDs her ist das System mit System 2 vergleichbar, die Leistung ist aber noch ein klein wenig besser. Zum Vergleich noch die Werte einer im selben System verbauten einzelnen HDD, die nicht mit am Raid-Controller hängt (die Werte sind nicht 1:1 vergleichbar, da es sich um eine 1,5 TB HDD handelt).
einzelne HDD: Lesen 118 MB/s, Schreiben: 114 MB/s