0

wrk : outil pour tester la performance d’un serveur web

Après avoir fait des tests de performances (benchmark) sur le serveur, c’est au tour du serveur web d’être mis à l’épreuve.

Pour rappel, le serveur web qui permet d’afficher le blog est composé de :

  • Nginx : moteur web,
  • Php-fpm : moteur PHP,
  • MariaDB : Moteur de la base de donnée,
  • Varnish : moteur du proxy cache.

Dans l’article, le moteur de base de données MariaDB ne sera pas traité. Cependant, il a été vue sur le blog un outil pour faire des tests de performances : sysbench.

wrk : outil pour tester la performance d’un serveur web

wrk est outil open-source sous licence Apache 2.0, qui permet de tester la performance d’un serveur web. wrk est disponible sur gitub.
Pendant le test, wrk va mesurer la latence et le nombre de requête par seconde.
La latence mesurée se réfère à l’intervalle de temps entre le moment où la demande a été faite (par WRK) et le moment où la réponse a été reçue à partir du service).
wrk

Installer wrk sur son serveur GNU/Linux

L’installation de wrk est très simple, pour ce faire suivre les consignes :

Debian/Ubuntu

sudo apt-get install build-essential libssl-dev git
cd /opt
git clone https://github.com/wg/wrk.git
cd wrk
make
sudo cp wrk /usr/local/bin

CentOS/RedHat/Fedora

sudo  yum groupinstall 'Development Tools'
sudo yum install  openssl-devel
sudo yum install  git
cd /opt
git clone https://github.com/wg/wrk.git
cd wrk
make
# déplacer l'exécutable  dans votre PATH
sudo cp wrk /in/your/PATH

Faire des benchmark avec wrk

Exemple basique :

wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html

Ce test va mesurer les performances pendant 30 secondes, utiliser 12 threads Tet 400 connections ouvertes.

Maintenant, je vais faire un test de performance sur les 3 briques, que composent mon serveur web.

    • Nginx :
    root@memolinux:/opt/wrk# wrk -t12 -c400 -d30s https://memo-linux.com:8080/readme.html
    Running 30s test @ https://memo-linux.com:8080/readme.html
    12 threads and 400 connections
    Thread Stats Avg Stdev Max +/- Stdev
    Latency 66.75ms 156.81ms 1.22s 89.72%
    Req/Sec 4.50k 2.34k 21.32k 76.33%
    1554372 requests in 30.02s, 14.27GB read
    Requests/sec: 51776.48
    Transfer/sec: 486.62MB
    
      • Php-fpm :
      root@memolinux:/opt/wrk# wrk -t12 -c400 -d30s https://memo-linux.com:8080/
      Running 30s test @ https://memo-linux.com:8080/
      12 threads and 400 connections
      Thread Stats Avg Stdev Max +/- Stdev
      Latency 1.57s 275.10ms 1.99s 84.42%
      Req/Sec 12.91 11.73 90.00 83.99%
      2582 requests in 30.05s, 1.79MB read
      Socket errors: connect 0, read 0, write 0, timeout 804
      Non-2xx or 3xx responses: 7
      Requests/sec: 85.94
      Transfer/sec: 60.93KB
      
        • Varnish :
        root@memolinux:/opt/wrk# wrk -t12 -c400 -d30s https://memo-linux.com/
        Running 30s test @ https://memo-linux.com/
        12 threads and 400 connections
        Thread Stats Avg Stdev Max +/- Stdev
        Latency 17.49ms 30.03ms 357.02ms 86.89%
        Req/Sec 1.34k 402.91 3.75k 73.80%
        471930 requests in 30.09s, 18.96GB read
        Requests/sec: 15683.86
        Transfer/sec: 645.37MB
        

        Partager l'article :





        fred

        Administrateur Système autodidacte et utilisateur au quotidien de GNU/Linux (Debian, Ubuntu, Manjaro et un peu de CentOS).

        Laisser un commentaire

        Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *