Outil de test de monté en charge

Bonjour,

comme l’indique le titre je cherche un tel outil, permettant notamment
de
simuler N utilisateurs en simultané et d’obtenir des stats permettant de
détecter les goulots d’étranglement.
http://fr.wikipedia.org/wiki/Goulot_d’étranglement

Bonjour Frédéric

tu peux regarder du côté d’apachebench (“ab” - si tu es sous OS X tu
devrais l’avoir en standard; sous windows tu peux le trouver en
installant le serveur apache, ab.exe est quelque part sous un
répertoire bin. Il existe peut être un moyen plus simple de
l’obtenir).

Voilà un petit exemple:

Stitch:~/Work/ thbar$ ab -n 10 -c 2 Google
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd,
http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation,
http://www.apache.org/

Benchmarking www.google.com (be patient)…done
Server Software: GWS/
2.1
Server Hostname: www.google.com
Server Port: 80

Document Path: /index.html
Document Length: 228 bytes

Concurrency Level: 2
Time taken for tests: 0.595 seconds
Complete requests: 10
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 10
Total transferred: 5930 bytes
HTML transferred: 2280 bytes
Requests per second: 16.81 [#/sec] (mean)
Time per request: 119.00 [ms] (mean)
Time per request: 59.50 [ms] (mean, across all concurrent
requests)
Transfer rate: 9.97 [Kbytes/sec] received

Connnection Times (ms)
min mean[+/-sd] median max
Connect: 52 54 0.9 54 56
Processing: 59 61 6.8 59 79
Waiting: 56 61 6.7 59 78
Total: 111 115 6.0 113 131

Percentage of the requests served within a certain time (ms)
50% 113
66% 114
75% 115
80% 122
90% 131
95% 131
98% 131
99% 131
100% 131 (last request)

a+

Thibaut Barrère

LoGeek

Le vendredi 07 septembre 2007 à 11:16 +0200, Frédéric Logier a écrit :

Bonjour,

comme l’indique le titre je cherche un tel outil, permettant notamment
de simuler N utilisateurs en simultané et d’obtenir des stats
permettant de détecter les goulots d’étranglement.

Salut Frédéric,

Il existe Rails Analyzer : http://rails-analyzer.rubyforge.org/
Je n’ai pas encore tester mais cela ne saurait tarder.

Par contre, la difficulté va être de simuler N utilisateurs avec chacun
leur adresse IP … si quelqu’un à une réponse, je suis aussi preneur.


Pickabee
Communication Visuelle & Multimédia
6 rue Jacques de la Roque - 13100 Aix-en-Provence
Tél. 04 42 96 98 13 - Port. 06 32 60 31 86 - Fax 09 55 22 09 52

Le 07/09/07, Thibaut Barrère a écrit :

tu peux regarder du côté d’apachebench (“ab” - si tu es sous OS X tu
devrais l’avoir en standard; sous windows tu peux le trouver en
installant le serveur apache, ab.exe est quelque part sous un
répertoire bin. Il existe peut être un moyen plus simple de
l’obtenir).

Je suis sous linux et j’ai bien ab :slight_smile:

Voilà un petit exemple:

Ok donc suffit de passer les liens à tester en param, mais je pensais
surtout à un outil qui irait sur tous les liens sans qu’on lui précise.

Ok donc suffit de passer les liens à tester en param, mais je pensais
surtout à un outil qui irait sur tous les liens sans qu’on lui précise.

Si tu veux générer une charge utilisateur pour observer un peu ce qui
se passe, voici quelques outils qui te permettront de scripter plus ou
moins bien des parcours types et de simuler plusieurs utilisateurs:

  • http://www.opensta.org/ (gratuit mais je ne le trouve pas
    trèsergonomique à mon
    goût)- Automated Software Testing Tools | Tricentis (payant, mais
    plutôtagréable et efficace)
  • ou encore des tests seleniums en boucle, lancés depuis plusieurs
    machines (petite échelle mais simple à mettre en oeuvre)
  • (et beaucoup d’autres, que pourront te suggérer des personnes sur la
    liste)

La difficulté étant de parvenir à définir des parcours et des charges
qui reflètent vraiment la réalité… Si tu es déjà en production, tu
peux récupérer des logs pour comprendre ces parcours et les rejouer.
apachebench pourra te servir en parallèle ensuite à mesurer le temps
de réponse d’une page dans un contexte, avant et après une éventuelle
optimisation.

Je trouve qu’avoir une configuration identique à la production est un
gros plus (config = cpu,ram,cartes réseaux,configuration disque raid
etc), tout comme le fait d’ouvrir le trafic en production
progressivement, en observant ce qui se passe et en s’adaptant (car
l’usage réel peut être très différent de celui qu’on a tenté de
prévoir en laboratoire). Sur ce point des outils (payants) comme
http://www.fiveruns.com/products/rm/manage sont sympathiques…

Thibaut

Ok donc suffit de passer les liens à tester en param, mais je pensais
surtout à un outil qui irait sur tous les liens sans qu’on lui précise.

Pour un crawler sauvage, voir:
http://rails-analyzer.rubyforge.org/tools/classes/Crawler.html

On 9/7/07, Jérémy DIERX [email protected] wrote:

Il existe Rails Analyzer : http://rails-analyzer.rubyforge.org/
Je n’ai pas encore tester mais cela ne saurait tarder.

Par contre, la difficulté va être de simuler N utilisateurs avec chacun
leur adresse IP … si quelqu’un à une réponse, je suis aussi preneur.

httperf c’est du même genre que ab, full ligne de commande mais ca gère
des
trucs avancés type des profils d’utilisateurs ayant chacun leur propre
session. Ca ne crawl pas en revanche.

Effectivement rails analyzer est sympa mais c’est fait pour tester des
actions particulières, le premier qui l’intègre à cruisecontrol pour
faire
du suivi de performance à le droit à un gros bisou :).

Pour compléter, il existe chez peepcode un screencast (à 9$) de
Geoffrey Grosenbach réalisé en collaboration avec Zed S., l’auteur
de Mongrel autour de httpperf et de la méthodologie de test d’appli
web.

http://peepcode.com/products/benchmarking-with-httperf

Sur le même sujet, voir aussi:
http://nubyonrails.com/articles/peepcode-page-caching-and-httperf

Sur un thème proche, voir aussi RFuzz, un autre outil de Zed S.,
pour tester la fiabilité d’un site en le fuzzant (i.e. en balançant
des données foireuses pour voir là où ça explose).

http://rfuzz.rubyforge.org/

Un autre outil à peut-être essayer: Apache Flood
http://httpd.apache.org/test/flood/

Ol.