Mark Aslan Kuschels Blog

SQL, Business Intelligence, Microsoft, .Net

SSDs vs. SAS Festplatten – Ein Performancevergleich

Beim Betreiben eines SQL Servers spielt die Hardware eine entscheidende Rolle für die Performance des Systems. Microsoft bietet zusammen mit Hardware-Partnern zwar Fast-Track-Server an, in vielen Fällen ist es jedoch nicht möglich eine solche Konfiguration einzusetzen.

Wer sich seinen Server selbst zusammenstellt wird heutzutage immer wieder die Frage gestellt, ob es sich lohnt SSDs einzusetzen oder ob ein älteres System durch den Einsatz von SSDs beschleunigt werden kann. In diesem Performancevergleich habe ich SSDs gegen SAS Platten antreten lassen.

Das Setup

Zum Einsatz kam schon ein älterer Server: HP ProLiant DL 380 G5 mit einem SmartArray P400 Controller. Dieser Controller unterstützt nur einen maximalen Durchsatz von 300 MB/s, weshalb in der Messung auch nicht der maximale Durchsatz der SSD erreicht wurde. Das spielt bei SQL Server Workloads jedoch meist nur eine untergeordnete Rolle.

Ansonsten:
Arbeitsspeicher: 14 GB
SAS Controller Cache: 512 MB
Erster Plattenstapel: 2x146GB 10k SAS Platten im RAID-1
Zweiter Plattenstapel: 2x72GB 10k SAS Platten im RAID-1
Dritter Plattenstapel: 2x500 GB Samsung EVO 840 im RAID-1
SQL Server 2014 Enterprise mit CU4
Windows Server 2012 R2 Standard

Gemessen habe ich mit dem SQLIO-Tool die IOs/sek, Datendurchsatz in MB/sek sowie durchschnittliche Zugriffszeit verschiedener Laststufen.

Messergebnisse

IOs/sek

image image

Die SSDs zeichnen sich im Bereich der IOs besonders bei zufälligen Lesezugriffen mit teilweise 10x höherer Performance gegenüber den Festplatten aus (8k Zugriffe). Dies verwundert nicht, denn Festplatten müssen bei zufälligen Zugriffen immer eine Umdrehung abwarten, bevor Daten gelesen werden können. Mit wachsender Größe der gelesenen / geschriebenen Datenmenge schmilzt der Vorteil dahin. Bei 256 KB ist der Performancegewinn noch im Faktor 1,6 bzw. 2,2 gegenüber den 146GB bzw. 72GB SAS Festplatten.

Dass die Unterschiede im Bereich des Schreibens nicht so groß ausfallen ist auf die Verwendung des Cache Moduls im RAID Controller zurück zu führen.

MB/sek

imageimage

Bei der Betrachtung der Transferraten wird weiter deutlich, dass die SSD ihre Stärken bei zufälligen Lesen und Schreiben ausspielen kann. Beim zufälligen Lesen erreichen die SSDs sogar die 300MB Grenze des Controllers, sodass davon ausgegangen werden kann, dass bei Verwendung eines neueren Controllers noch höhere Werte erzielt würden. Die hier beobachteten Unterschiede fallen jedoch nicht so stark aus, wie unter beim Vergleich der IOs pro Sekunde.

Durchschnittliche Zugriffszeit in Millisekunden

imageimage

Der Vollständigkeit halber füge ich auch noch die Zugriffszeit in Millisekunden ein, auch wenn diese Werte für den Betrieb eines SQL-Servers nicht so relevant sind. Auch hier ist – wenig Überraschend – die SSD mit deutlich kürzeren Zugriffszeiten vertreten. Im Bereich der 8 KB großen Pakete war die Zugriffszeit so gering, dass sie nicht ermittelt werden konnte.

Betrachtung

Die Messergebnisse lassen bereits nach einer schnellen Betrachtung folgende Rückschlüsse zu:

  • Die höhere Datendichte der 146 GB SAS Festplatten ermöglichen höhere Transferraten und kürzere Zugriffszeiten, insbesondere bei großen Datenblöcken, gegenüber den kleineren 72 GB SAS Festplatten
  • Die SSDs haben die Leistung der Festplatten in sämtlichen Disziplinen in den Schatten gestellt. Ihre Stärken haben die SSDs insbesondere im Bereich der kleinen Blöcke und bei zufälligen Lese/Schreibvorgängen

Heißt dies nun, man sollte in jedem Fall auf SSDs setzen? Folgende weitere Eigenschaften sollte man auch noch in Betracht ziehen:

  • SSDs verfügen bei intensiver Nutzung über eine deutlich Kürzere Lebensdauer, als Festplatten. Das häufigere Austauschen von Laufwerken verursacht Kosten
  • Ebenfalls sind SSDs in der Anschaffung teurer, als Festplatten
    Die hier im Test verwendeten SSDs sind zwar relativ günstig, jedoch auch nur auf Belastungen in handelsüblichen PCs und Laptops ausgelegt. Preise für Enterprise SSDs liegen nochmal deutlich höher

Es stellt sich darüber hinaus auch die Frage, welche Art Workload ihr SQL Server verarbeiten muss. Wird eine OLTP Anwendung mit vielen kleinen Schreib- und Lesezugriffen betrieben oder handelt es sich um eine Datawarehouse-Lösung?

Im Bereich der OLTP-Anwendungen werden eher kleinere Datenblöcke gelesen und geschrieben, weshalb die Performancesteigerung sehr hoch sein dürfte. OLTP Anwendungen sind aber auch besonders auf Datenintegrität angewiesen. Verlorene Datensätze in der Buchhaltung oder einem Warenwirtschaftssystem können ein ganzes Unternehmen ruinieren.
Daher müsste bei einem Umstieg auf SSDs in jedem Fall, sofern noch nicht vorhanden, eine Backup-Lösung eingesetzt werden, welche einfaches Page-Restoring ermöglicht und möglichst viele Sicherungen am Tag durchführt.

In Datewarehouse-Umgebungen sind Lese- und Schreibvorgänge eher sequentiell, da oft große Datenmengen am Stück gelesen werden. Der Performancegewinn einer SSD ist somit nicht so signifikant, wie bei einer OLTP Anwendung, und rechtfertig die zusätzlichen Kosten wahrscheinlich nicht.

Anders sieht dies wiederrum für die Cube-Aufbereitung von Analysis Services aus. Die Analysis Services legen Dimensionen, Attribute und Measuregruppen in vielen einzelnen Dateien ab, wodurch auch viele kleine Zugriffe auf das Dateisystem erfolgen. Bei sehr großen Analysis Services Datenbanken kann der Einsatz einer SSD die Aufbereitungszeiten signifikant verkürzen.

Fazit

Gegenüber 10k SAS-Festplatten haben selbst handelsübliche SSDs deutlich messbare Performancevorteile.

Je nach Einsatzszenario rechtfertigt dies allein jedoch nicht den Einsatz von SSDs, da die höheren Kosten und kürzere Austauschintervalle ebenfalls eine Rolle spielen.

Interessant wäre es sicher auch diesen Vergleich für 15k SAS Platten durchzuführen, da diese nochmal über deutlich kürzere Zugriffszeiten verfügen, in der Anschaffung aber auch deutlich teurer, als 10k Festplatten, sind.

Kommentar schreiben

Loading