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.

Adam Driscoll