Hovedmenu
Devolutions-blog

Nyheder, opdateringer og indsigter fra Devolutions.

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

Benchmarking af webapplikationer med Siege på Ubuntu og PowerShell Universal

Denne gennemgang viser, hvordan du installerer Siege på Ubuntu, når en Windows-vært fra WSL2, opretter et enkelt REST-endpoint i PowerShell Universal og kører Siege-benchmarks med standardantallet af samtidige brugere og med et højere antal.

I dette indlæg ser vi på, hvordan du benchmarker en webapplikation med Siege på Ubuntu og PowerShell Universal.

Siege er et HTTP- og HTTPS-værktøj til belastningstest på Linux. Det kan køre webanmodninger med et konfigurerbart antal tråde. I benchmarktilstand kører det så hurtigt som muligt, uden forsinkelser.

Jeg bruger Ubuntu 20.04, der kører i WSL2 på en Windows 11-vært. Vi bruger typisk Siege til at ydelsesteste PowerShell Universal, så det er den applikation, vi tester her.

Installer Siege

Kør følgende kommandoer for at installere Siege på Ubuntu:

sudo apt update -y
sudo apt install siege -y
siege --version

Find værtens IP-adresse

For at Ubuntu-imaget kan nå Windows-værten, skal du hente værtens IP-adresse fra /etc/resolv.conf. Følgende kommando udskriver IP-adressen direkte i terminalen:

grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'
172.18.224.1

Din IP-adresse er en anden. Brug den værdi, din maskine returnerer, i trinnene nedenfor.

Start webapplikationen

Jeg har PowerShell Universal installeret som en tjeneste, der lytter på standardporten 5000. Opret til denne test et API-endpoint med New-PSUEndpoint:

New-PSUEndpoint -Url /benchmark -Method GET -Endpoint {
    "Hello, world"
}

Du kan kalde endpointet lokalt med PowerShell:

Invoke-RestMethod http://localhost:5000/benchmark

Fra WSL2 kan du kalde det samme endpoint med wget og bruge værtsmaskinens IP-adresse fra det forrige trin:

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]

Kør et Siege-benchmark

Brug flaget -b for at køre Siege i benchmarktilstand, og angiv den URL, du vil benchmarke. Som standard kører det med 25 samtidige brugere:

siege -b http://172.18.224.1:5000/benchmark

Jeg lod benchmarken køre et stykke tid og trykkede derefter på Ctrl+C for at stoppe den. Dette gennemløb varede omkring 67 sekunder med cirka 1.000 anmodninger i sekundet:

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

Du kan øge antallet af samtidige HTTP-anmodningstråde med parameteren -c:

siege -c 125 -b http://172.18.224.1:5000/benchmark

Konklusion

I dette indlæg har vi set på, hvordan du installerer Siege på Ubuntu i WSL2, eksponerer et enkelt endpoint i PowerShell Universal og kører Siege-benchmarks mod det fra Linux.

Vil du selv prøve? Hent PowerShell Universal i downloadcenteret.