Ich wollte die Leistungen der bei unterschiedlichen Anbietern gemieteten VPS (1blu, Contabo, Alfahosting) vergleichen und bin dabei auf ein wirklich tolles Bash-Skript gestoßen, dass ich hier kurz vorstellen möchte.
YABS – ein einfaches Bash-Skript zur Abschätzung der Leistung von Linux-Servern mit fio, iperf3 und Geekbench
Benchmarking-Tests
Das Skript führt drei Haupttests durch:
dd – zur Einschätzung der Festplattenleistung. (Hinweis, dass die Lesegeschwindigkeit durch den Cache stark beeinflusst werden kann)
iperf – zur Abschätzung der Netzwerkleistung unter Verwendung paralleler Threads und durch Testen der Geschwindigkeiten in beide Richtungen (Download und Upload). Es werden sowohl IPv4- als auch IPv6-iperf-Tests durchgeführt (sofern verfügbar).
Geekbench 5 – zur Abschätzung der Gesamtsystemleistung durch Ausführen einer großen Anzahl verschiedener CPU-/Speicher-intensiver Benchmarks. Sowohl Single- als auch Multi-Core-Ergebnisse werden zusammen mit einem Link zur Anzeige der vollständigen Systemergebnisse angegeben. Die URL, mit der Sie den Test anfordern und zu Ihrem Geekbench-Profil hinzufügen können, wird auf die Festplatte geschrieben.
Vorbereitungen
Sicherstellen, dass curl und fio installiert sind.
apt-get install curl fio
Anwenden
curl -sL yabs.sh | bash
Fertig.
Flags (Überspringen von Tests, Reduzierung von iperf Locations, Geekbench 4, usw.)
Standardmäßig führt das Skript alle drei im Abschnitt oben beschriebenen Tests durch. Falls Sie einen oder mehrere der Tests überspringen möchten, verwenden Sie die folgenden Befehle:
curl -sL yabs.sh | bash -s -- -flags
- -b diese Option erzwingt die Verwendung von vorkompilierten Binärdateien aus dem Repo anstelle von lokalen Paketen
- -f/-d diese Option schaltet den fio-Test (Festplattenleistung) ab
- -i diese Option schaltet den iperf-Test (Netzwerkleistung) ab
- -g diese Option deaktiviert den Geekbench-Test (Systemleistung)
- -h diese Option gibt die Hilfemeldung mit der Verwendung, den erkannten Flags und dem Status des lokalen Pakets (fio/iperf) aus
- -r diese Option reduziert die Anzahl der iperf-Standorte (Online.net/Clouvider LON+NYC), um die Bandbreitennutzung zu verringern
- -4 diese Option setzt den Geekbench 5-Leistungstest außer Kraft und führt stattdessen einen Geekbench 4-Test durch
- -9 diese Option führt den Geekbench 4-Test zusätzlich zum Geekbench 5-Test aus
- -j diese Option gibt eine JSON-Darstellung der Ergebnisse auf dem Bildschirm aus
- -w mit dieser Option werden die JSON-Ergebnisse in eine Datei mit dem angegebenen Dateinamen geschrieben
- -s diese Option sendet eine JSON-Darstellung der Ergebnisse an die angegebene(n) URL(s) (siehe Abschnitt unten)
Optionen können gruppiert werden, um mehrere Tests zu überspringen, z. B -fg
, um die Festplatten- und Systemleistungstests zu überspringen (und somit nur die Netzwerkleistung zu testen).
https://github.com/masonr/yet-another-bench-script
Beispiel Ausgabe
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
# Yet-Another-Bench-Script #
# v2022-12-29 #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
Thu 19 Jan 2023 09:47:54 PM CET
Basic System Information:
---------------------------------
Uptime : 27 days, 23 hours, 45 minutes
Processor : AMD EPYC 7282 16-Core Processor
CPU cores : 4 @ 2794.746 MHz
AES-NI : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM : 7.8 GiB
Swap : 0.0 KiB
Disk : 195.8 GiB
Distro : Ubuntu 20.04.5 LTS
Kernel : 5.4.0-132-generic
fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4k (IOPS) | 64k (IOPS)
------ | --- ---- | ---- ----
Read | 5.28 MB/s (1.3k) | 64.48 MB/s (1.0k)
Write | 5.30 MB/s (1.3k) | 64.87 MB/s (1.0k)
Total | 10.59 MB/s (2.6k) | 129.36 MB/s (2.0k)
| |
Block Size | 512k (IOPS) | 1m (IOPS)
------ | --- ---- | ---- ----
Read | 127.54 MB/s (249) | 99.76 MB/s (97)
Write | 134.32 MB/s (262) | 106.41 MB/s (103)
Total | 261.86 MB/s (511) | 206.17 MB/s (200)
iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider | Location (Link) | Send Speed | Recv Speed | Ping
----- | ----- | ---- | ---- | ----
Clouvider | London, UK (10G) | 191 Mbits/sec | 200 Mbits/sec | 9.61 ms
Scaleway | Paris, FR (10G) | 191 Mbits/sec | 199 Mbits/sec | 13.6 ms
NovoServe | North Holland, NL (40G) | 191 Mbits/sec | 199 Mbits/sec | 4.98 ms
Uztelecom | Tashkent, UZ (10G) | 184 Mbits/sec | 193 Mbits/sec | 95.5 ms
Clouvider | NYC, NY, US (10G) | 186 Mbits/sec | 194 Mbits/sec | 78.3 ms
Clouvider | Dallas, TX, US (10G) | 175 Mbits/sec | 186 Mbits/sec | 242 ms
Clouvider | Los Angeles, CA, US (10G) | 177 Mbits/sec | 186 Mbits/sec | 153 ms
iperf3 Network Speed Tests (IPv6):
---------------------------------
Provider | Location (Link) | Send Speed | Recv Speed | Ping
----- | ----- | ---- | ---- | ----
Clouvider | London, UK (10G) | 188 Mbits/sec | 196 Mbits/sec | 65.9 ms
Scaleway | Paris, FR (10G) | 183 Mbits/sec | 196 Mbits/sec | 14.1 ms
NovoServe | North Holland, NL (40G) | 189 Mbits/sec | 197 Mbits/sec | 4.93 ms
Uztelecom | Tashkent, UZ (10G) | 182 Mbits/sec | 187 Mbits/sec | 163 ms
Clouvider | NYC, NY, US (10G) | 183 Mbits/sec | 191 Mbits/sec | 89.6 ms
Clouvider | Dallas, TX, US (10G) | 104 Mbits/sec | 175 Mbits/sec | 214 ms
Clouvider | Los Angeles, CA, US (10G) | 174 Mbits/sec | 182 Mbits/sec | 153 ms
Geekbench 5 Benchmark Test:
---------------------------------
Test | Value
|
Single Core | 708
Multi Core | 2345
Full Test | https://browser.geekbench.com/v5/cpu/19980806
YABS completed in 11 min 19 sec