Stress test/benchmaking rapide d’un serveur web avec Siege.

Siege est un petit outil permettant de réaliser des stress test rapide (ainsi qu’un benchmarking)  et non qualitatifs de serveurs web.

J’utilise Siege actuellement pour benchmaker mon RaspberryPI Zero avec Raspbian Jessie /Apache.

Pour installer Siege sous Debian/Ubuntu


apt-get install siege

 

Lancer le test :


siege -d10 -c30 -r1000 -v http://lderpib1.local/i2.html

 

  • -d : délais en seconde entre chaque appel de page (par utilisateur)
  • -c : nombre d’utilisateurs (thread) attaquant le serveur web
  • -r : nombre de répétitions. Vous pouvez indiquer un nombre énorme. Un simple ctl+c stoppe le test et vous génère le rapport de benchmark.
  • -v : affiche en console les temps de chaque transaction.

HTTP/1.1 200   0.86 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.52 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.16 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.61 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.61 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.61 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.44 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.17 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.21 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.47 secs:   12360 bytes ==> GET  /i2.html
HTTP/1.1 200   0.50 secs:   12360 bytes ==> GET  /i2.html

Pour l’RL j’ai généré une page web statique remplie aléatoirement.

Une fois le test effectué (ou interrompus par ctl+c)


Transactions:                2378 hits
Availability:              100.00 %
Elapsed time:              468.79 secs
Data transferred:           28.03 MB
Response time:                0.91 secs
Transaction rate:            5.07 trans/sec
Throughput:                0.06 MB/sec
Concurrency:                4.62
Successful transactions:        2378
Failed transactions:               0
Longest transaction:            2.54
Shortest transaction:            0.16


PS : Pour quelques chose de plus fin je passe par JMetter et un site web statique de 1000 pages  générées  par un outils de ma composition.

Chaque page possède :

  • un nombre  aléatoire d’image et de paragraphes
  • chaque paragraphe est composé d’un nombre aléatoire (borne min/max paramétrable) de mots et chaque mot un nombre aléatoire de lettres (borne min/max paramétrable)