Cloud Server Performance Benchmarking-Methodik: How-to

, Sautter Carl-Christian

Einführung in das Cloud Server Performance Benchmarking

In unserer umfassenden Cloud-Benchmark-Studie haben wir die Leistung von Azure vs STACKIT-Cloud-Instanzen verglichen und gleichzeitig die Kosteneffizienz und Optimierung der Cloud-Infrastruktur bewertet. Diese Methodik stellt einen fairen Vergleich sicher, indem sie die unterschiedlichen Spezifikationen und Leistungsfähigkeiten der Instanztypen im Verhältnis zu ihren Kosten berücksichtigt.

Cloud-Server-Performance: Cloud-Benchmark-Gesamtleistung pro Euro gemessen mit der Phoronix Test Suite
Cloud-Benchmark-Gesamtleistung pro Euro gemessen mit der Phoronix Test Suite

Leistungsanpassung im Verhältnis zum Preis 

Um zu verstehen, warum diese Anpassung wichtig ist, betrachten wir folgendes Beispiel: Eine virtuelle Maschine mit 2 GB RAM und 2 vCPUs kann entweder auf einem leistungsstarken HPC-Server oder einem kleinen Raspberry Pi betrieben werden. Während der Raspberry Pi günstiger sein mag, könnte der Leistungsunterschied im Vergleich zum HPC-Server den Kostenvorteil zunichtemachen. Durch die Bewertung der Kosteneffizienz könnte sich die Instanz auf dem HPC-Server letztlich als wertvoller erweisen.


Methodik des Cloud Server Performance Benchmarkings 

Tool-Auswahl 

Wir haben verschiedene Benchmarking-Tools getestet und dabei standardisierte Tools bevorzugt. Kompatibilitätsprobleme mit STACKIT Cloud erforderten kreative Lösungen. Terraform wurde als zentrale Automatisierungslösung für die Cloud-Infrastruktur gewählt, um Benchmarking-Tools und Cloud-Provider-APIs miteinander zu verbinden. Zusätzliche Bash-Skripte wurden für die Bereitstellung von Cloud-VMs und die Sammlung der Ergebnisse verwendet. Komplexe Infrastruktur-Setups wurden vermieden, und es kamen ausschließlich kostenlose, Open-Source-Benchmarking-Tools für Cloud zum Einsatz.

Radardiagramm der PTS-Leistungsbenchmarks für mehrere Azure-Instanzen (höher ist schneller)
Radardiagramm der PTS-Leistungsbenchmarks für mehrere Azure-Instanzen (höher ist schneller)

Wissenschaftlicher Ansatz

Unser Ansatz wurde so wissenschaftlich wie möglich gestaltet, unter Berücksichtigung von Zeit- und Kostenbeschränkungen. Obwohl die Anzahl der Messungen und Laufzeiten begrenzt war, wurden Benchmarks auf einer großen Anzahl von Instanzen durchgeführt, um zuverlässige Ergebnisse zu gewährleisten. Diese Skalierung ermöglichte die Identifizierung und Neubewertung von Ausreißern, wodurch ungenaue Datenpunkte minimiert wurden. Zudem spielte die Optimierung der Cloud-Kosten eine zentrale Rolle bei der Auswahl der Benchmark-Parameter.

Praxisnahe Server-Benchmarks

Um sicherzustellen, dass unsere Benchmarks die reale Leistung widerspiegeln, haben wir häufig genutzte Serveranwendungen getestet, darunter:

  • Apache und Nginx für die Webserver-Leistung
  • Redis für die In-Memory-Datenbank-Performance

Diese Tests bewerteten, wie gut die Cloud-Instanzen reale Workloads bewältigen, darunter HTTP-Anfragen, Redis-Abfragen und Cache-Performance unter Last. Durch die Einbeziehung dieser Tests lieferten wir praktische Einblicke in die Leistung der Cloud-Instanzen, die über synthetische Benchmarks hinausgehen.

nginx-Leistungs-Kosten-Benchmark erstellt mit PTS für mehrere Azure-Instanzen (mehr ist besser)
nginx-Leistungs-Kosten-Benchmark erstellt mit PTS für mehrere Azure-Instanzen (mehr ist besser)

Synthetische Benchmarks

Zusätzlich zu praxisnahen Workloads haben wir auch synthetische Benchmarks auf Cloud-Servern durchgeführt, um die rohe Systemleistung in einer kontrollierten Umgebung zu messen. Diese umfassten:

  • CPU-Benchmarks 
  • Speicher-Benchmarks
  • Speicher- (Storage-) Benchmarks
  • Netzwerk-Benchmarks

Durch die Kombination aus realen und synthetischen Benchmarks konnten wir eine ausgewogene Bewertung vornehmen, die sowohl theoretische Leistungskapazitäten als auch die Handhabung praktischer Workloads erfasste.

Benchmark für das Verhältnis von Leistung und Kosten, erstellt mit PTS für mehrere Azure-Instanzen (mehr ist besser)
Benchmark für das Verhältnis von Leistung und Kosten, erstellt mit PTS für mehrere Azure-Instanzen (mehr ist besser)

Cloud-Benchmarking-Tools 

Geekbench

Übersicht: Geekbench misst die CPU- und GPU-Leistung und simuliert reale Aufgaben wie Verschlüsselung, Bildbearbeitung und maschinelles Lernen. Es bietet plattformübergreifende Kompatibilität und normalisierte Ergebnisse für Architekturvergleiche. 

Einschränkungen für Cloud-Server: Während Geekbench auf Servern ausgeführt werden kann, erwies es sich als ungeeignet für Cloud-Instanzen mit hoher CPU-Anzahl, da die Ergebnisse nicht repräsentativ für typische Serverprozesse waren. Deshalb wurde Geekbench frühzeitig aus unserer Benchmark-Suite entfernt. 

Link: https://www.geekbench.com/ 

Yet-Another-Bench-Script (yabs.sh) 

Übersicht: yabs.sh automatisiert die Ausführung von Geekbench, fio und iperf3, ohne externe Abhängigkeiten oder erhöhte Berechtigungen zu benötigen. 

Einschränkungen für Cloud-Server: Wir nutzten yabs.sh zur schnellen und effizienten Ausführung von Geekbench auf Testservern, jedoch war sein Umfang für Cloud-Umgebungen begrenzt. 

Link: https://github.com/masonr/yet-another-bench-script 

Phoronix Test Suite (PTS) 

Übersicht: PTS ist eine Open-Source-Benchmarking-Plattform, die eine Vielzahl von Tests für CPU, GPU, Speicher und Speichergeräte unterstützt. Sie ist mit OpenBenchmarking.org verknüpft und ermöglicht automatisierte Tests mit Validierung der Ergebnisse.

Einschränkungen für Cloud-Server: Obwohl PTS nicht cloud-nativ ist, erwies es sich als das am besten geeignete Tool für unsere Benchmarks. Seine Fähigkeit, umfassende, wiederholbare Tests durchzuführen und Ergebnisse selbst zu validieren, lieferte wertvolle Einblicke. Um die Wirtschaftlichkeit sicherzustellen, wurde die Laufzeit der Benchmarks auf maximal 1–2 Stunden pro Instanz reduziert. Zudem wurden Code-Anpassungen vorgenommen, um Probleme mit Rundungspräzision bei kleinen VM-Instanzen zu beheben.

Link: https://github.com/phoronix-test-suite/phoronix-test-suite 

PerfKitBenchmarker (PKB) 

Übersicht: PKB wurde ursprünglich von Google entwickelt und automatisiert die Bereitstellung von Ressourcen, die Durchführung von Benchmarks und die Datensammlung für Cloud-Dienste. 

Einschränkungen für Cloud-Server: Obwohl PKB OpenStack unterstützt, war es nicht ideal für das Benchmarking von STACKIT Cloud. Da STACKIT eine Mindestabrechnung von einer Stunde pro Ressource hat, führte PKBs Ansatz der frischen Ressourcenbereitstellung für jeden Benchmark-Schritt zu höheren Kosten. Zudem erschwerte veralteter Code die Integration von Elasticsearch und InfluxDB-Publishern.

Link: https://github.com/GoogleCloudPlatform/PerfKitBenchmarker 


Terraform für Cloud-Automatisierung 

Terraform wurde genutzt, um die Erstellung von Servern und Infrastrukturkomponenten zu automatisieren. Es übernahm die Steuerung der Benchmark-Tool-Ausführung durch Provisioners und sammelte Ergebnisse per SSH/SCP. Die Ressourcen-Tracking-Funktionalität von Terraform ermöglichte die effiziente Reproduktion fehleranfälliger Instanzen.


Herausforderungen und Probleme

SSH-Verbindungsprobleme


Das parallele Ausführen von Benchmarks auf vielen Instanzen führte zu SSH-Verbindungsfehlern, vermutlich aufgrund von Firewall-Beschränkungen oder Ratenbegrenzungen durch die hohe Anzahl von Anfragen. Dieses Problem verdeutlichte die Herausforderungen beim gleichzeitigen Management hunderter Instanzen.

Warteschlangenverwaltung

Zur Steuerung der Ausführungsreihenfolge und Fehlerverfolgung setzten wir das Unix-Tool task spooler (tsp) ein. Dieses ermöglichte das Einreihen von Benchmark-Jobs, die Verwaltung paralleler Ausführungen und eine effiziente Fehlerbehandlung.


Fazit

Unsere Cloud Server Performance Benchmarking-Methodik kombiniert eine sorgfältige Tool-Auswahl, Terraform-basierte Automatisierung und eine robuste Fehlerbehandlung, um aussagekräftige Performance-Insights zu liefern. Durch die Bewertung der Cloud-Server-Leistung in Relation zum Preis ermöglichen wir eine fundiertere Entscheidungsfindung in der Cloud-Strategie. Trotz anfänglicher Herausforderungen erwies sich die Phoronix Test Suite als das anpassungsfähigste und effektivste Tool für unsere Benchmarking-Anforderungen.


Falls Sie sich für Cloud-Benchmarks interessieren oder systematische Entscheidungen zur Cloud-Infrastruktur-Kostenoptimierung diskutieren möchten, stehen Ihnen unsere Expert:innen gerne zur Verfügung.

Allgemeine Anfrage

Wir freuen uns darauf, Ihre Herausforderungen zusammen in Angriff zu nehmen und über passende Lösungsansätze zu sprechen. Kontaktieren Sie uns – und erhalten Sie maßgeschneiderte Lösungen für Ihr Unternehmen. Wir freuen uns auf Ihre Kontaktanfrage!

Jetzt Kontakt aufnehmen