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.

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.
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.
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.
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.