In diesem Beitrag sehen wir uns an, wie Sie eine Webanwendung mit Siege unter Ubuntu und PowerShell Universal benchmarken.
Siege ist ein HTTP- und HTTPS-Lasttestwerkzeug für Linux. Es kann Webanfragen mit einer konfigurierbaren Anzahl von Threads ausführen. Im Benchmark-Modus läuft es so schnell wie möglich und ohne Verzögerungen.
Ich verwende Ubuntu 20.04 in WSL2 auf einem Windows 11-Host. Wir nutzen Siege typischerweise für Performance-Tests von PowerShell Universal; das ist hier also die getestete Anwendung.
Siege installieren
Um Siege unter Ubuntu zu installieren, führen Sie die folgenden Befehle aus:
sudo apt update -y
sudo apt install siege -y
siege --version
Die Host-IP-Adresse ermitteln
Damit das Ubuntu-Image den Windows-Host erreichen kann, lesen Sie die Host-IP aus /etc/resolv.conf. Der folgende Befehl gibt die IP-Adresse direkt im Terminal aus:
grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'
172.18.224.1
Ihre IP unterscheidet sich; verwenden Sie in den folgenden Schritten den Wert, den Ihre Maschine zurückgibt.
Die Webanwendung starten
Ich habe PowerShell Universal als Dienst installiert; er lauscht auf dem Standardport 5000. Erstellen Sie für diesen Test einen API-Endpunkt mit New-PSUEndpoint:
New-PSUEndpoint -Url /benchmark -Method GET -Endpoint {
"Hello, world"
}
Sie können den Endpunkt lokal mit PowerShell aufrufen:
Invoke-RestMethod http://localhost:5000/benchmark
Aus WSL2 heraus rufen Sie denselben Endpunkt mit wget auf und verwenden dabei die Host-IP aus dem vorherigen Schritt:
wget http://172.18.224.1:5000/benchmark
--2022-04-13 07:21:35-- http://172.18.224.1:5000/benchmark
Connecting to 172.18.224.1:5000... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/json]
Saving to: ‘benchmark’
benchmark [ <=> ] 12 --.-KB/s in 0s
2022-04-13 07:21:35 (1.95 MB/s) - ‘benchmark’ saved [12]
Einen Siege-Benchmark ausführen
Um Siege im Benchmark-Modus zu starten, verwenden Sie das Flag -b und übergeben die URL, die Sie benchmarken möchten. Standardmäßig startet Siege mit 25 gleichzeitigen Benutzern:
siege -b http://172.18.224.1:5000/benchmark
Ich habe den Benchmark eine Weile laufen lassen und dann mit Ctrl+C beendet. Dieser Lauf dauerte etwa 67 Sekunden bei rund 1.000 Anfragen pro Sekunde:
** SIEGE 4.0.4
** Preparing 25 concurrent users for battle.
The server is now under siege...^C
Lifting the server siege...
Transactions: 72893 hits
Availability: 100.00 %
Elapsed time: 67.34 secs
Data transferred: 2.64 MB
Response time: 0.02 secs
Transaction rate: 1082.46 trans/sec
Throughput: 0.04 MB/sec
Concurrency: 24.96
Successful transactions: 72893
Failed transactions: 0
Longest transaction: 0.51
Shortest transaction: 0.01
Die Anzahl gleichzeitiger HTTP-Anfrage-Threads erhöhen Sie mit dem Parameter -c:
siege -c 125 -b http://172.18.224.1:5000/benchmark
Fazit
In diesem Beitrag haben wir gesehen, wie Sie Siege unter Ubuntu in WSL2 installieren, einen einfachen PowerShell Universal-Endpunkt bereitstellen und Siege-Benchmarks dagegen von Linux aus ausführen.
Möchten Sie es selbst ausprobieren? Holen Sie sich PowerShell Universal im Download Center.

Adam Driscoll