MAIN MENU
Devolutions Blog

Ankündigungen, Aktualisierungen und Einsichten von Devolutions

Devolutions PowerShell Universal Test Siege On Ubuntu for the Devolutions blog.

Benchmarking von Webanwendungen mit Siege unter Ubuntu und PowerShell Universal

Diese Anleitung zeigt, wie Sie Siege unter Ubuntu installieren, einen Windows-Host von WSL2 aus erreichen, einen einfachen PowerShell Universal REST-Endpunkt erstellen und Siege-Benchmarks mit Standard- und höherer Parallelität ausführen.

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.