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)