MAIN MENU
Le blogue Devolutions

Annonces, mises à jour et analyses de Devolutions

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

Benchmarking d’applications web avec Siege sur Ubuntu et PowerShell Universal

Ce guide montre comment installer Siege sur Ubuntu, joindre un hôte Windows depuis WSL2, créer un point de terminaison REST simple dans PowerShell Universal, puis lancer des benchmarks Siege avec la concurrence par défaut et une concurrence plus élevée.

Dans cet article, nous verrons comment évaluer les performances d’une application web avec Siege sur Ubuntu et PowerShell Universal.

Siege est un outil de tests de charge HTTP et HTTPS pour Linux. Il peut exécuter des requêtes web avec un nombre de threads configurable. En mode benchmark, il s’exécute aussi vite que possible, sans délai.

J’utilise Ubuntu 20.04 dans WSL2 sur un hôte Windows 11. Nous utilisons généralement Siege pour tester les performances de PowerShell Universal; c’est donc l’application sous test ici.

Installer Siege

Pour installer Siege sur Ubuntu, exécutez les commandes suivantes :

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

Récupérer l’adresse IP de l’hôte

Pour que l’image Ubuntu atteigne l’hôte Windows, récupérez l’IP de l’hôte dans /etc/resolv.conf. La commande suivante affiche l’adresse IP directement dans le terminal :

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

Votre IP sera différente; utilisez la valeur renvoyée sur votre machine dans les étapes ci-dessous.

Démarrer l’application web

J’ai installé PowerShell Universal comme service, à l’écoute sur son port par défaut 5000. Pour ce test, créez un point de terminaison d’API avec New-PSUEndpoint :

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

Vous pouvez appeler le point de terminaison en local avec PowerShell :

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

Depuis WSL2, appelez le même point de terminaison avec wget, en utilisant l’IP de la machine hôte de l’étape précédente :

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]

Lancer un benchmark Siege

Pour exécuter Siege en mode benchmark, utilisez l’option -b et passez l’URL à tester. Par défaut, Siege démarre avec 25 utilisateurs simultanés :

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

J’ai laissé le benchmark tourner un moment, puis j’ai appuyé sur Ctrl+C pour l’arrêter. Ce run a duré environ 67 secondes, à environ 1 000 requêtes par seconde :

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

Vous pouvez augmenter le nombre de threads de requêtes HTTP simultanées avec le paramètre -c :

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

Conclusion

Dans cet article, nous avons vu comment installer Siege sur Ubuntu dans WSL2, exposer un point de terminaison PowerShell Universal simple, et lancer des benchmarks Siege contre celui-ci depuis Linux.

Envie d’essayer par vous-même? Récupérez PowerShell Universal depuis le centre de téléchargement.