Die Beschleunigerkarte ZD XL SQL Accelerator von OCZ im Test

Scott Betts, 123RF

Race Condition

Datenbanken sind oft I/O-lastig, weshalb man durch den Einsatz von Flash-Speicher den Hebel schon mal an der richtigen Stelle ansetzt, um ihnen Beine zu machen. Meist sind die Datenmengen aber so groß, dass es noch zu teuer wäre, sie komplett auf SSDs zu verlagern. Dann hilft eine intelligente Lösung aus Cache und Flash-Volumes.
Termine planen, Nachrichten austauschen, Kundendaten verwalten, am besten auch vom Smartphone aus. Das alles und noch viel mehr sollen moderne ... (mehr)

So haben wir getestet

Für unsere Benchmarks verwendeten wir einen bewährten Server der Firma Exus Technology. Das Modell ProServ II (Abbildung 1) mit einem neueren Intel-Mainboard (S5520HC) verfügte über 16 GByte Hauptspeicher, von dem 8 GByte für die Datenbank reserviert wurden. Als Prozessoren dienten zwei Intel-Xeon-Quadcore-CPUs X5460, getaktet mit 3 GHz. Von den acht Festplattenslots des zwei Höheneinheiten großen Servers wurde nur einer genutzt, die interne SATA-Disk nahm das Betriebssystem Windows Server 2008 R2 und die Datenbank Microsoft SOL Server 2012 auf.

Abbildung 1: Exus-Server und transtec-RAID, die für die Benchmarks verwendet wurden.

Die eigentlichen Nutzdaten speicherte ein Premium-RAID-System der Firma transtec, angeschlossen via Ultra-320-SCSI mit zehn SATA-Slots. Insgesamt acht Platten darin bildeten eine RAID-5-Gruppe, die in zwei Partitionen aufgeteilt und zwei LUNs zugeordnet war. Auf einer befand sich die TPC-C-Datenbank.

Während die Preise von Consumer-SSDs noch in diesem Jahr auf das Niveau von Festplatten sinken könnten, sind Enterprise-SSDs nach wie vor teuer. Sie sind für Dauerbetrieb bei voller Ausnutzung ihrer Kapazität ausgelegt, bieten mehr Performance und eine weitaus geringere Streuung ihrer Leistungsdaten, verglichen mit den für den gelegentlichen Einsatz im privaten Bereich konzipierten Geschwistern. Das lassen sich die Hersteller aber gut bezahlen: Während im Consumer-Sektor deutlich weniger als ein Euro pro GByte anfallen, sind es im Enterprise-Bereich gerne mal 10 Euro pro GByte und mehr.

Bei einer mehrere TByte großen Datenbank stellt sich deshalb bald die Frage, ob sich die komplette Verlagerung auf SSDs rechnet. Selbst wenn man diese Frage verneint, muss man nicht auf den Performance-Gewinn durch die schnellen Flash-Speicher verzichten. Die Lösung besteht dann darin, sie selektiv als Cache einzusetzen. In diesem Fall reicht ein vergleichsweise kleines Flash-Volume, um den Zugriff auf eine große Datenmenge um ein Vielfaches zu beschleunigen.

Die TPC-Benchmarks

Der TPC-C-Benchmark misst die Performance der Datenbank beim Online Transaction Processing (OLTP), also bei einem Workload, wie ihn beispielsweise ERP-Systeme bei der direkten Bearbeitung von Geschäftsprozessen erzeugen. Charakteristisch sind hier viele Abfragen unterschiedlicher Komplexität, die die Datenbank ad hoc parallel beantwortet. Das Gegenstück wäre die Stapelverarbeitung (Batchbetrieb).

TPC-C simuliert zu diesem Zweck das Handelssystem einer fiktiven Firma. Es verfügt über eine wählbare Zahl von Warehouses, die jeweils in 10 Distrikte unterteilt sind. Zu jedem Distrikt gehören 3000 Kunden (Abbildung 3). Diese Kunden lösen nun Bestellungen aus, die jeweils eine wechselnde Anzahl Produkte betreffen. Die Bestellungen gelangen zu Mitarbeitern der Bestellannahme, deren Zahl ebenfalls konfigurierbar ist, und werden von ihnen gebucht. Dabei werden beispielsweise wechselnde Rabatte verrechnet und der Lagerbestand aktualisiert. Ein kleinerer Prozentsatz der Bestellungen kann nicht vom zuerst kontaktierten Warehouse bedient werden und wird an ein anderes weitergeleitet. Im Einzelnen ergibt sich der folgende Mix an Transaktionen:

Abbildung 3: Die Simulation bildet eine konfigurierbare Zahl von Lagerhäusern ab, von denen jedes 10 Distrikte mit jeweils 3000 Kunden betreut.
  • New Order – Buchung einer neuen Bestellung eines Kunden: 45 Prozent
  • Payment – Aktualisierung der Verbindlichkeiten des Kunden: 43 Prozent
  • Delivery – Asynchrone Auslieferung der Bestellungen: 4 Prozent
  • Order Status – Abfrage der zuletzt eingegangenen Bestellung eines Kunden: 4 Prozent
  • Stock Level – Abfrage des Lagerbestands einer bestimmten Ware: 4 Prozent

Der Benchmark produziert zwei Messwerte: Zum einen Transactions per Minutes (TPM), ein datenbankspezifischer Wert, ermittelt aus der Anzahl Transactions und Rollbacks pro Zeiteinheit. Dieser Wert eignet sich nicht für Vergleiche zwischen verschiedenen Datenbanken. Zum anderen New Orders per Minute (NOPM). Dieser Wert ist unabhängig von der konkreten Datenbank-Implementierung und empfiehlt sich für Vergleiche zwischen Datenbanken.

Im Gegensatz zum oben beschriebenen TPC-C simuliert der TPC-H-Benchmark ein Decision-Support-System. Hier wird die Datenbank mit wesentlich komplexeren Anfragen belastet, die viele Berechnungen (etwa von Mittelwerten), häufige Sortier- und Gruppierungsfunktionen und zahlreiche Joins zwischen Tabellen enthalten. Da dabei viele Zwischenergebnisse entstehen, wird hier die tempdb ganz besonders gefordert.

Die Tester verwendeten als Benchmark-Software für diesen Artikel HammerDB 2.14, eine freie Implementierung des TPC-C- und TPC-H-Standards. Neben der nicht weiter gepflegten TPC-C-Umsetzung der Open Source Development Labs hat diese Version den Vorteil, dank einer kleinen GUI mit weniger Handarbeit auszukommen. Die Ergebnisse kann man nicht direkt neben diejenigen stellen, die die teuren, streng überwachten Original-TPC-Benchmarks liefern. Sie bieten aber für interne Vergleiche gute Anhaltspunkte.

Das Caching ist freilich applikationsspezifisch: Es braucht eine Software, die ermittelt, auf welche Daten am häufigsten zugegriffen wird, und die genau diese Daten dann auf einem SSD-Volume vorhält. Seltener genutzte Informationen bleiben dann auf den vergleichsweise langsamen Festplatten. Für Microsofts SQL Server 2012 gibt es vom SSD-Hersteller OCZ eine solche Caching-Lösung in Form einer mit Flash bestückten Erweiterungskarte und der zugehörigen Treiber. Das ADMIN-Magazin hat diesen ZD XL SQL Accelerator getestet.

Die Ergebnisse

Die TPC-C-Datenbank war für die größtmögliche Last konfiguriert, auf die sich die Benchmark-Software via GUI einstellen lässt: 5000 Warehouses und 100 virtuelle User. Wir begannen ohne die Beschleunigerkarte, um einen Vergleichswert zu erhalten. Dabei erhöhten wir Stufe um Stufe die Anzahl virtueller User. Bei den ersten Schritten von zwei auf drei virtuelle User verdoppelte sich die erzielbare Leistung noch. Doch der Zuwachs verringerte sich schnell, die Kurve für den Leistungsanstieg näherte sich bereits nach gut einem Dutzend parallel aktiver User einer Horizontalen an. Die Belastung der Festplatten gelangte hier an die Sättigungsgrenze. Am Ende brachten es 100 User auf 35 423 Transaktionen pro Minute (TPM) bei 7645 New Orders pro Minute (NOPM).

Während der ersten Versuche waren allerdings die Caches, die es auch ohne die später zu testende Karte im Betriebssystem und in der Datenbank gibt, noch kalt. Wir wiederholten deshalb den Versuch mit 100 Usern sofort nach dem ersten Mal und kamen dabei mit aufgewärmten Caches auf 36 073 TPM bei 7909 NOPM. Der Zugewinn dank des systemeigenen Cache-Effekts betrug also nur magere zwei Prozent.

Anschließend bauten wir die SD-XL-Acceleratorkarte ein und installierten ihre Treiber. Datenbank und Log wurden in einen frischen Startzustand zurückversetzt. Der Flash-Speicher auf der Karte wurde geteilt: in ein 100 GByte großes Volume, das im Falle des TPC-H-Benchmarks die Tempdb, bei TPC-C das Logfile aufnahm, und in einen 600 GByte großen Cache. Danach wärmten wir mithilfe eines von OCZ mitgelieferten Utilities den Cache an, sodass er von Anfang an die Daten enthielt, die der jeweilige Benchmark verwendete.

Der TPC-H-Benchmark, der zuvor ohne die Beschleunigerkarte 8058 Sekunden Laufzeit benötigte, lief nun in 2603 Sekunden durch, also ziemlich genau in einem Drittel der Zeit. Der Bottleneck verschob sich nun vom I/O-System zur CPU. Zwar verfügte der Testserver über acht Rechenkerne, aber die Abfragen wurden nun nach Auslastung eines Kerns an den nächsten weitergereicht – und diese Transfers kosten Zeit.

Beim TPC-C-Benchmark mit 100 Clients maßen wir im ersten Versuch Werte von bis zu 87 762 TPM, das sind mehr als 2,5 mal so viele Transaktionen wie ohne Beschleunigerkarte, aber mit aufgewärmten Cache. In einem Versuch mit ansteigender Anzahl virtueller Clients wird der Unterschied noch deutlicher: Wo die Festplatten ohne das Z-Drive bereits in die Sättigung geraten, steigt die Kurve nun mit der Beschleunigerkarte weiter an (Abbildung 2).

Abbildung 2: Die ZD-XL-Beschleunigerkarte von OCZ für Microsofts SQL-Server, die wir in diesem Artikel getestet haben.

Fazit

Eine kleine Datenbank, die vielleicht auch nicht den höchsten Performance- und Verfügbarkeitsansprüchen genügen muss, wird man mit der Accelerator-Karte deshalb nicht wirtschaftlich beschleunigen können, weil es dann billiger wäre, sie gleich ganz auf ein SSD-Volume zu kopieren. Anders sieht das aus, wenn der Anwender bestehende Backup- oder Hochverfügbarkeitskonfigurationen mit Festplatten-SANs nicht aufgeben kann oder will oder wo die Datenmenge so groß ist, dass die nötigen SSDs zu teuer wären. Die Beschleunigerkarte ist zudem kompatibel mit Cluster-Lösungen und kann mit relativ wenig SSD-Speicher große Datenbanken auf Trab bringen. In einer solchen Konstellation spielt sie überzeugend ihre Vorteile aus.

Je nach Workload erreichten wir eine Beschleunigung um mehr als den Faktor 2,5. Obwohl nur Teile der Datenbank (Tempdb, Indizes, Logfiles) auf Flash-Volumes verlagert wurden, während der Rest des schnellen Speichers als Cache benutzt wurde, ist der Performance-Zuwachs fast so hoch, als wäre die gesamte Datenbank auf SSDs ausgelagert worden. Die Cache-Lösung ist jedoch viel kostengünstiger.

Bei allem ist der Installations- und Wartungsaufwand erfreulich gering. Ein Wizzard führt schnell durch die erste Einrichtung der Karte. Im Betrieb werden häufig verwendete Abfragen automatisch erkannt und gecachet. So landen immer die Daten auf dem Flash-Speicher, von denen die Datenbank am meisten profitiert. Ganz billig ist der Performance-Schub aber nicht: Für ein Z-Drive wie das im Test verwendete muss man schon an die 9700 Dollar auf die Ladentheke legen.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Neuer Beschleunigerkarte von OCZ

OCZ, jetzt ein Unternehmen der Toshiba-Gruppe, stellt jetzt mit der Enterprise-PCI Express (PCIe) SSD Z-Drive 4500 Serie eine neue flashbasierte Beschleunigerkarte vor.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019