TKperf – maßgeschneiderte Performance-Tests für SSDs und HDDs

© Orcea David, 123RF

Stoppuhr

SSD-Hersteller versuchen Kunden mit Leistungsdaten zu beeindrucken. Wer es genauer wissen möchte, misst selber, zum Beispiel mit einer standardisierten Testsuite, die das freie Tool TKperf implementiert.
Mit den Tipps und Workshops im ADMIN-Magazin 03/2013 sichern Administratoren ihre Webserver und Netze gegen Angriffe ab: gegen Abhören sensibler Informationen, ... (mehr)

Solid State Drives (SSDs) sind über ihren Status als Nischenprodukt hinausgewachsen und treten parallel zu traditionellen Festplatten (HDDs) mit gesteigerter Attraktivität in puncto Kapazität und Preis vermehrt in Server-Systemen auf. Ob SSDs einen Performance-Schub bringen, hängt immer auch vom jeweiligen Einsatzzweck ab, da sich die Anforderungen an Speichersysteme grundlegend unterscheiden können. Anwender müssen sich im ersten Schritt für SSDs, HDDs oder eine Kombination der beiden Technologien entscheiden. Steht der Entschluss fest welches Medium zum Einsatz kommt, bleibt immer noch die Auswahl eines geeigneten Modells offen.

Selber testen

Bereits zu diesem Zeitpunkt sollte man darauf achten, dass die Geschwindigkeit der ausgewählten Hardware den aktuellen und künftigen Performance-Anforderungen entspricht. Aussagekräftige und transparente Performance-Tests erleichtern diese Suche nach der richtigen SSD oder HDD wesentlich. Aus der Sicht des Endanwenders ist ein Test umso wertvoller, je mehr Informationen er daraus gewinnen kann. Oft reichen die Herstellerangaben zur Performance eines Geräts nicht aus, da weder die zum Testen benutzte Software noch ein genauer Testablauf spezifiziert ist.

Die "Storage Networking Industry Association" (SNIA) hat mit der "Solid State Storage Performance Test Specification" ein Dokument veröffentlicht, das eine konkrete Testbeschreibung für SSDs im Enterprise-Bereich liefert [1]. Die Spezifikation geht in ihren Tests speziell auf die besonderen Eigenschaften von SSDs ein und beschreibt, auf welchem Weg sich korrekte und reproduzierbare Ergebnisse erzielen lassen. Die von der Thomas-Krenn.AG entwickelte Open-Source-Software TKperf setzt diese Spezifikation um und bereitet die Ergebnisse in einem Test-Report auf [2]. Zusätzlich zu den Tests für SSDs stehen außerdem erste grundlegende Tests für Festplatten zur Verfügung, die in künftigen Versionen von TKperf weiter ausgebaut werden.

Fio und Python

TKperf verwendet im Hintergrund den von Jens Axboe, dem Maintainer des Linux Block Layers, entwickelten Flexible I/O Tester (Fio) [3]. Fio bietet viele Testoptionen und die für die Umsetzung der SNIA Performance-Tests nötige Flexibilität: Das sind Features wie etwa Laufzeitbegrenzung, Direct I/O, Anzahl gleichzeitig laufender Jobs, I/O-Tiefe oder die Verwendung von nicht komprimierbaren Testdaten.

TKperf erfordert Fio 2.0.3 oder höher. Bei älteren Fio-Versionen fehlen einige Informationen im Terse Output, einer Minimal-Ausgabe, die sich von anderen Programmen leicht verarbeiten lässt [4]. Distributionen wie Ubuntu 12.04 oder Debian Squeeze führen ältere Fio-Versionen in den Repositories (v1.59 beziehungsweise v1.38). Fio kann aber sehr einfach aus dem Quellcode des Git-Repository kompiliert werden [5].

Weitere Komponenten von TKperf setzen auf Hdparm und Python. Hdparm liefert via »hdparm -I« automatisiert Informationen über ein zu testendes Device. Außerdem kann das Tool einen Secure Erase von SATA-Laufwerken durchführen. Das bewirkt bei SSDs, dass alle Flash Chips gelöscht werden und die SSD wieder die Performance wie zum Zeitpunkt des Auslieferungszustands bringt. Dieses Secure Erase, das zentraler Bestandteil der Initialisierungsphasen der Tests ist, ist auch der Grund, warum zur Zeit beim Testen von SAS- oder PCIe-SSDs noch Hand angelegt werden muss. Für SAS Devices muss man die Secure-Erase-Methode auf »sg_format« der »sg3_utils« (den Werkzeugen zum Ausführen von SCSI-Kommandos) abändern. Für PCIe-SSDs gestaltet sich das sichere Löschen noch aufwendiger, da sie herstellerspezifische Kommandozeilen-Werkzeuge erfordern. Für Intels PCIe-SSD 910 wird zum Beispiel das Secure Erase über das Datacenter Tool »isdct« gestartet.

Die Python-Skripte von TKperf starten die Fio-Jobs, bereiten die Ergebnisse auf und generieren daraus Grafiken. Alle Fio-Aufrufe werden in einer Log-Datei aufgezeichnet. Nach dem Ende eines Tests werden außerdem die Testergebnisse geloggt. Die aufgezeichneten Performance-Werte werden in XML-Form abgelegt und zur Erstellung der Diagramme herangezogen. Unter Zuhilfenahme der Python-Bibliothek Matplotlib generiert TKperf die von der Spezifikation geforderten Darstellungen aus den Ergebnissen [6].

Ähnliche Artikel

comments powered by Disqus

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