paint-brush
Benchmarking von MinIO mit WARP und Speedtestvon@minio
12,628 Lesungen
12,628 Lesungen

Benchmarking von MinIO mit WARP und Speedtest

von MinIO8m2023/11/08
Read on Terminal Reader

Zu lang; Lesen

Wenn die Leistung von entscheidender Bedeutung ist, müssen Sie sicher sein, dass Sie die bestmögliche Leistung erzielen.
featured image - Benchmarking von MinIO mit WARP und Speedtest
MinIO HackerNoon profile picture
0-item
1-item


Kunden bringen MinIO in ihre Umgebungen ein, um hochleistungsfähigen S3-kompatiblen Objektspeicher zu erhalten, der auf jeder physischen oder virtuellen Hardware und Kubernetes läuft. Unsere veröffentlichten Benchmarks zeigen, dass MinIO der schnellste verfügbare Objektspeicher ist, aber nur so schnell laufen kann wie die Hardware und das Netzwerk, die Sie ihm geben. Für unser Team steht die Leistung im Vordergrund, daher tun wir alles, was wir können, um Administratoren dabei zu helfen, das Beste aus MinIO herauszuholen. Um zu überprüfen, ob die zugrunde liegende Infrastruktur MinIO optimal unterstützen kann, bieten wir zwei Methoden zur Leistungsbewertung und Identifizierung potenzieller Engpässe an: WARP und Speedtest.


Moderne Anwendungen wie KI/ML, erweiterte Analysen und Datenbanken erfordern einen leistungsstarken Objektspeicher. Die Kombination aus Skalierbarkeit und hoher Leistung von MinIO macht jede noch so anspruchsvolle Arbeitslast erreichbar. Wenn die Leistung von entscheidender Bedeutung ist, müssen Sie sicher sein, dass Sie die bestmögliche Leistung erzielen. Die Ergebnisse von WARP und Speedtest können verwendet werden, um die Leistung über einen längeren Zeitraum zu verfolgen und potenzielle Probleme proaktiv zu lokalisieren, bevor sie zu ernsthaften Problemen werden.


WARP ist eine Open-Source-Software zur S3-Leistungsbewertung mit vollem Funktionsumfang, die für die Durchführung von Tests zwischen WARP-Clients und Objektspeicher-Hosts entwickelt wurde. WARP misst die GET- und PUT-Leistung von mehreren Clients anhand eines MinIO-Clusters. WARP verfügt über viele Optionen, die über die Befehlszeile oder Umgebungsvariablen konfiguriert werden können und es Ihnen ermöglichen, Tests zu erstellen, die auf Ihre Arbeitslasten abgestimmt sind. Denken Sie daran: Es ist absolut wichtig, die Leistung auf sinnvolle Weise zu bewerten und anhand von Daten und einer Arbeitslast zu testen, die die realen Bedingungen widerspiegeln, unter denen Ihr Objektspeicher betrieben wird.


Im Gegensatz dazu ist Speedtest ein benutzerfreundlicher automatisierter Leistungstest, der ein optimiertes Erlebnis und prägnante Ergebnisse bietet. Wir haben Speedtest im November eingeführt , um MinIO-Administratoren die Möglichkeit zu geben, mit einem einzigen Befehl eine verteilte Leistungsbewertung ihrer MinIO-Cluster durchzuführen. Speedtest führt PUTS und dann GETS aus und erhöht die Last schrittweise, um den maximalen Gesamtdurchsatz zu ermitteln. Die Ausführung von Tests kann je nach MinIO-Cluster zwischen einigen Sekunden und mehreren Minuten dauern.


Es gibt einige wichtige Unterschiede zwischen WARP und Speedtest. WARP ist ein umfassendes Tool, das die Leistung Ihres MinIO-Clusters über von WARP-Clients durchgeführte Vorgänge testet. Client-Rechner führen PUTS und GETS von Objekten über das Netzwerk zu Ihrem verteilten MinIO-Cluster durch. Dies macht WARP zu einem hervorragenden Mechanismus zum Testen der erwarteten Client-Server-Leistung. Im Gegensatz dazu wird Speedtest auf MinIO-Instanzen ausgeführt, um PUTS und GETS von Objekten an andere MinIO-Instanzen im selben Cluster durchzuführen. Daher sagt Ihnen Speedtest, wozu die Serverseite der Leistungsgleichung in der Lage ist.


WARP enthält nahezu jeden Test (GET, PUT, DELETE, LIST, STAT, RETENTION), den Sie möglicherweise für Objektspeicher ausführen möchten, und Testläufe können eine benutzerdefinierte Mischung aus Objektgrößen umfassen, die Ihren Arbeitslasten entspricht. Speedtest durchläuft festgelegte Testparameter, um schnell den maximalen Durchsatz zu ermitteln. Während WARP zusätzliche Software erfordert, ist Speedtest in MinIO enthalten und kann über die MC-Schnittstelle oder die MinIO-Konsole ausgeführt werden. Um die Fehlerbehebung zu erleichtern, können Kunden Speedtest-Ergebnisse mit einem einzigen Klick mit MinIO-Ingenieuren teilen.

WARP: Ein umfassendes Objektspeicher-Benchmarking-Tool

Werfen wir zunächst einen Blick auf WARP. WARP ist ein Tool, mit dem Sie die Leistung von MinIO oder jedem S3-kompatiblen Objektspeicher unter verschiedenen Bedingungen gründlich bewerten können. Standardmäßig führt WARP einen gemischten Lese- und Schreibtest für alle Festplatten durch, die von MinIO im verteilten Modus verwendet werden.


Warpfluss


Für diese Demo. Wir werden WARP ausführen, um MinIO zu testen, das auf AWS im verteilten Modus läuft. Wir haben dies in letzter Zeit ziemlich oft gemacht, damit wir potenzielle und aktuelle Kunden über die leistungsstärksten Konfigurationen informieren können, die wir durch Tests gefunden haben.


WARP befindet sich in einem GitHub-Repository , wo Sie auch eine ausführliche Dokumentation finden.


Wir beginnen mit der Bereitstellung von MinIO im verteilten Modus . Sie können MinIO herunterladen und selbst in Ihrer Umgebung installieren oder diesem Tutorial folgen, um MinIO auf AWS EC2 zu installieren .


In jedem Fall beginnen wir mit einer verteilten MinIO-Bereitstellung:


MinIO-Architektur


Sobald MinIO betriebsbereit ist, können Sie die Leistung mit WARP messen, also fangen wir an.

Schritt 0: Erstellen Sie 4 Instanzen (auch als Knoten bezeichnet) mit Distributed MinIO.

Befolgen Sie für alle Amazon-Benutzeroberflächen oder AWS-CLIs die Schritte aus dem vorherigen Blogbeitrag , um Instanzen bereitzustellen, konfigurieren Sie jedoch keinen zusätzlichen Speicher. Die Instanzen, auf denen WARP ausgeführt wird, müssen leistungsstark genug sein, um schnell Objekte zu generieren und PUT- und GET-Vorgänge zu messen, benötigen jedoch nicht das von einem MinIO-Knoten benötigte Speichervolumen.


Instanzen erstellen

Schritt 2: Hosts in der Datei /etc/hosts auf WARP-Clients hinzufügen.

  1. Rufen Sie die IP-Adressen der MinIO-Instanzen ab
  2. Rufen Sie die IP-Adressen der WARP-Clients ab
  3. Fügen Sie diese Adressen in die Datei /etc/hosts ein:


 172.31.23.237 host1 172.31.26.78 host2 172.31.26.90 host3 172.31.19.110 host4 172.31.27.18 warp1 172.31.23.81 warp2 172.31.19.28 warp3 172.31.19.7 warp4


Beachten Sie, dass wir empfehlen, die Hosts in aufeinanderfolgender Reihenfolge aufzulisten und mit ihnen zu arbeiten. Dies vereinfacht das Starten von WARP über die Befehlszeile und erleichtert das Auffinden jedes WARP-Clients und MinIO-Hosts.

Schritt 3: WARP auf den Clients installieren und ausführen.

 [root@ip-172-31-19-7 ec2-user]# wget https://github.com/minio/warp/releases/download/v0.5.5/warp_0.5.5_Linux_arm64.tar.gz 2022-02-08 20:06:04 (66.3 MB/s) - 'warp_0.5.5_Linux_arm64.tar.gz' saved [3943887/3943887] [root@ip-172-31-19-7 ec2-user]# tar -xzvf warp_0.5.5_Linux_arm64.tar.gz LICENSE README.md warp_logo.png warp [root@ip-172-31-19-7 ec2-user]# ./warp client warp: Listening on :7761


Beachten Sie, dass jeder WARP-Client Port 7761 überwacht

Schritt 4: Führen Sie WARP aus und starten Sie einen gemischten Benchmark.

 [root@ip-172-31-27-18 ec2-user]# WARP_ACCESS_KEY=minioadmin WARP_SECRET_KEY=minioadmin ./warp mixed --warp-client warp{1...4}:7761 --host host{1...4}:9000 --duration 120s --obj.size 64M --concurrent 64 warp: Benchmark data written to "warp-remote-2022-02-08[201339]-qymu.csv.zst" Mixed operations. Operation: DELETE, 10%, Concurrency: 256, Ran 1m54s. * Throughput: 39.90 obj/s Operation: GET, 45%, Concurrency: 256, Ran 1m54s. * Throughput: 10903.28 MiB/s, 178.64 obj/s Operation: PUT, 15%, Concurrency: 256, Ran 1m54s. * Throughput: 3628.27 MiB/s, 59.45 obj/s Operation: STAT, 30%, Concurrency: 256, Ran 1m54s. * Throughput: 119.98 obj/s Cluster Total: 14501.38 MiB/s, 397.44 obj/s over 1m55s. warp: Cleanup done. [root@ip-172-31-27-18 ec2-user]#


Sie haben einen grundlegenden Mixed-Mode-Leistungstest mit WARP abgeschlossen. Während wir zur Demonstration von WARP einen Mixed-Mode-Test verwendet haben, erhalten Sie in der Regel bessere Ergebnisse, die besser auf die reale Nutzung abgestimmt sind, wenn Sie einzelne Vorgänge (GET, PUT, LIST) in ihre eigenen Testläufe aufteilen, anstatt einen gemischten Testlauf auszuführen -Modustest.


Wir empfehlen Ihnen, die Dokumentation zu Rate zu ziehen, um mehr über die Ausführung weiterer Testszenarien zu erfahren. Sie können beispielsweise TLS und serverseitige Verschlüsselung aktivieren, um deren Auswirkungen in Ihrer Umgebung zu messen. Sie können die Infrastruktur stärker belasten, indem Sie die Anzahl gleichzeitiger Tests erhöhen. Sie können eine zufällige Mischung von Objektgrößen verwenden oder eine Objektgröße angeben, die Ihrer aktuellen Umgebung und Arbeitslast entspricht. Sie können Tests so konfigurieren, dass sie für einen definierten Zeitraum ausgeführt werden oder wie oben beschrieben automatisch beendet werden.


WARP-Ergebnisse werden auf dem Bildschirm angezeigt und in einer lokalen CSV-Datei gespeichert, die mit zstandard komprimiert wurde.

Speedtest für eine schnelle und einfache Leistungsbewertung

Für den Fall, dass Sie nicht die volle Flexibilität von WARP wünschen, haben wir mit Speedtest eine schnelle und einfache Möglichkeit entwickelt, die MinIO-Leistung zu messen. Speedtest wird am häufigsten im Autotune-Modus ausgeführt, wobei die Last schrittweise erhöht wird, um den maximalen Gesamtdurchsatz zu ermitteln.


Sie können mc verwenden, um Speedtest auszuführen:

 $ mc support perf object <alias>


 [root@ip-172-31-77-115 ec2-user]# ./mc support perf object myminio THROUGHPUT IOPS PUT 2.4 GiB/s 38 objs/s GET 4.6 GiB/s 73 objs/s Speedtest: MinIO 2022-02-01T18:00:14Z, 4 servers, 16 drives, 64 MiB objects, 72 threads


Oder Sie können Speedtest über die MinIO-Konsole ausführen, die browserbasierte GUI zum Konfigurieren, Verwalten und Berichten von MinIO-Clustern. Navigieren Sie einfach zum Menü „Support“, klicken Sie auf „Leistung“ und dann auf die Schaltfläche „Start“.


Leistungstest


Der Leistungstest wird ausgeführt. Nach Abschluss wird die aggregierte GET- und PUT-Leistung sowie die Leistung einzelner Knoten angezeigt.


Weitere Details und Beispiele für Speedtest finden Sie in diesem Tutorial .

Warp-Geschwindigkeit voraus!

Beginnen Sie noch heute mit dem Herunterladen von MinIO . Treten Sie unserer Slack-Community bei und tauschen Sie Ideen mit anderen MinIO-Benutzern aus. Wenn Sie spezielle Fragen zur Verwendung von WARP haben, kontaktieren Sie uns bitte auf unserem Slack-Kanal (Matt Sarrel und Cesar Celis) oder senden Sie uns eine E-Mail an [email protected].


Auch hier veröffentlicht.