Benchmarks für Cloud Data Stores

Netflix Tool NDBench zeigt, was der Datenspeicher aushält

Melanie Feldmann

© Shutterstock / Petrenko Andriy

In der freien Welt der Netflix-Microservices weiß der Videostreamer nicht immer, was bei seinen Speicher-Systemen so los ist. Deswegen musste ein Framework her, dass dabei hilft, das Verhalten des Datenspeicher bei verschiedenen Workloads, Wartungsoperationen und Instanztypen zu ermitteln. Netflix hat dazu NDBench entwickelt und Open Source gestellt.

So manche Datenbank und so mancher Data Store wirbt mit schicken Zahlen zur Performance. Diese schönen Zahlen haben aber meist mit der harten Wirklichkeit nur wenig zu tun. Kaum ein System läuft unter Idealbedingungen auf der perfekt für den Anwendungszweck zugeschnittenen Hardware. Netflix hat diesen Umstand zum Anlass genommen, um – wie so oft – ein eigenes Framework zu entwickeln. NDBench simuliert die Performancebewertung, in dem es verschiedene Produktionsszenarien nachahmt. Außerdem testet das Entwicklerteam damit Updates, beispielsweise von Cassandra, bevor sie sie in Produktion bringen. Für Inhouse-entwickelte Systeme kommt das Framework für automatisierte Testpipelines zum Einsatz. Auch hier nutzt Netflix NDBench für Performancetests unter verschiedenen Bedingungen und mit unterschiedlichen Storage Engines.

Die Architektur von NDBench

NDBench  ist Teil des Netflix‘ Open Source Stacks und arbeitet so mit Archaius zur Konfiguration, Spectator für die Metriken und Eureka für die Service Discovery zusammen. Trotzdem lässt sich das Framework auch mit anderen Cloud-Umgebungen nutzen, oder auch ganz klassisch lokal.

Das Framework selbst besteht aus drei Komponenten: Core, API und Web. Im Core wird der Workload für die Tests generiert. Über das API lassen sich Plug-ins für NDBench entwickeln. Die Web-Komponente bringt das UI und den Servlet Context Listener. Zurzeit bietet Netflix Plug-ins für Datastax Java Driver (CQL), C* Astyanax (Thrift), Elasticsearch und Dyno (Jedis). Zusätzlich zu Plug-ins ist es auch möglich dynamische Skripte in Groovy als neue Workloads hinzuzufügen. Das Framework lässt sich entweder von der Kommandozeile aus bedienen (über REST Calls) oder von einem webbasierten UI aus.

Sehen Sie auch: Netflix – Die umgekehrte Architekturbewertung eines Internetgiganten

(Quelle: http://techblog.netflix.com/2016/09/netflix-data-benchmark-benchmarking.html)

Die Architektur von NDBench (Quelle: http://techblog.netflix.com/2016/09/netflix-data-benchmark-benchmarking.html)

Flexible Lasttests

NDBench bringt zurzeit zwei Lasttests direkt mit: „random traffic“ und „sliding window traffic“. „Random traffic“ erklärt sich von selbst. Der Sliding-Window-Test ist anspruchsvoller. Er arbeitet mit sich wiederholenden Daten, die sowohl zeitlich als auch örtlich variieren können. Damit testen die Netflix-Entwickler sowohl den Caching-Layer des Datenspeichersystems als auch die In- und Output-Operationen der Festplatten (IOPS). Die Last lässt sich individuelle für jeden Knoten einstellen oder alle Knoten können Schreib-und Leseoperationen gleichzeitig generieren. Mit NDBench ist es auch möglich die Last mit Daten zu simulieren, auf die besonders oft zugegriffen wird, die sogenannten Hot Data. Das hilft dabei, die Anlaufzeit zu verringern.

Eine ausführliche Beschreibung des Frameworks gibt es auf dem Techblog von Netlfix. Zum Tool selbst geht es auf GitHub. Es steht unter der Apache-2-Lizenz.

Verwandte Themen:

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: