Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: 73f93064c4
Fetching contributors…

Cannot retrieve contributors at this time

180 lines (128 sloc) 6.895 kb
# $Id$
IDX-TSUNAMI LISEZMOI
IDEALX
____________________________________________________________
Table des matières
1. Introduction
1.1 Généralités
1.2 Qu'est-ce que ce logiciel fait?
2. Installation
2.1 Dépendances
2.2 Compilation et Installation
2.3 Problèmes/Bugs
2.4 Portabilité
____________________________________________________________
1. Introduction
1.1. Généralités
Ce document donne un rapide descriptifs de IDX-TSUNAMI, qui est
distribué sous les termes de la GNU General Public License version 2
(voir le fichier COPYING).
1.2. Qu'est-ce que ce logiciel fait?
Le propos de IDX-TSUNAMI est de simuler des utilisateurs afin de
tester la montée en charge et les performances d'applications
client/serveur (basées sur IP). Actuellement, les protocoles
HTTP et Jabber sont implémentés, et IDX-TSUNAMI est très facilement
extensible (voir le fichier doc/Design.txt pour une description
de l'implémentation et des possibilités d'extensions). IDX-TSUNAMI
utilise le langage Erlang.
Ce logiciel est capable de simuler plusieurs milliers d'utilisateurs
simultanément, et ceux-ci peuvent être répartis sur plusieurs
machines. Plus de 10000 utilisateurs peuvent être simulés sur une
seule machine; la limite supérieure dépend du type de hardware et
également de l'activité des clients simulés.
L'idée est de simuler le comportement d'un client réel en utilisant
un modèle de type stochastique, ceci afin de reproduire le trafic
plus fidèlement que peuvent le faire de simple modèles déterministes.
Un utilisateur est caractérisé par une une suite d'actions
(requetes, thinktime) faites au cours d'une session. Plusieurs
sessions peuvent être définies, chacune avec une popularité
donnée. De cette façon, lors de l'injection, chaque nouvel
utilisateur utilisera un type de session en tirant aléatoirement une
session (en fonction de la popularité de chaque session).
Un paramètre important est le l'inter-arrivée des clients qui
détermine le taux d'arrivée des clients sur le système (ie. le
nombre de clients arrivant sur le système -- démarrant leur session -- par
unité de temps). Plusieurs phases peuvent être définies pour un
tests, chaque phase injectant des utilisateurs à un taux donné.
Dans l'implémentation actuelle, la taux d'arrivée des clients et le
temps entre message d'un même client ("think time") sont modélisés
par une distribution exponentielle (par conséquent, le processus
d'arrivée est un processus de Poisson).
Le trafic peut être "dumpé" dans un fichier, afin de pouvoir
effectuer toutes sortes d'analyse après coup (option 'dumptrafic'
dans le fichier de configuration XML). Attention, cette option peux
ralentir considérablement les injecteurs en cas de très forte
charge.
Voir également le site http://tsunami.idealx.org/
2. Installation
2.1. Dépendances
- nécessite Erlang/OTP R9C-0 (http://www.erlang.org/download.html)
- xmerl-0.19 (http://sowap.sourceforge.net/download.html). Un paque
debian binaire est disponible à l'adresse
http://tsunami.idealx.org/dist/
xmerl-0.15 devrait fonctionner, mais la notation <tag/> n'est pas
supporté par cette version de xmerl (il faut utiliser à la place
la notation <tag></tag> )
- gnuplot et perl5 (optionel, utilisé pour les sorties graphiques du script
analyse_msg.pl). Le Template Toolkit est utilisé pour les rapports en HTML
(cf. http://template-toolkit.org/)
- les tests distribués utilisent un accès ssh non intéractif pour
démarrer Erlang à distance. Il faut donc utiliser une clé RSA/DSA,
sans passphrase ou en avec ssh-agent)
2.2. Compilation et Installation
Éditer les fichiers Makefile si vous voulez changer le chemin par
défaut (/usr/lib/erlang/ ...).
make
make install
Comment l'utiliser:
1a/ Éditer un fichier ~/.idx-tsunami/idx-tsunami.xml (toutes les
options sont décrites en commentaires dans le fichier d'exemple
/usr/share/doc/idx-tsunami/examples/idx-tsunami.xml).
1b/ Lire le fichier doc/Jabber.txt pour des informations spécifiques à
Jabber.
2/ utilisez le script "idx-tsunami --start" pour démarrer le
test de charge (man idx-tsunami pour avoir les options disponibles)
3/ Lorsque c'est terminé (idx-tsunami --stop pour forcer l'arrêt), le
script analyse_msg.pl (/usr/lib/idx-tsunami/bin/analyse_msg.pl)
génère une synthèse des temps de réponses;
ce script peut également générer des graphes avec l'option --plot.
Depuis la version 0.2.0, les statistique peuvent être calculés
en temps réel (mise à jour toutes les 10 secondes par défaut)
avec les options --stats and --plot option. Le script va
générer des graphes au format postscript en utilisant
gnuplot. L'option --stats requiert en argement le nomdu fichier
de log, par défaut 'idx-tsunami.log-YYYY:MM:DD-HH:mm'
Les mesures suivantes sont disponibles:
- response_time (temps de réponse pour chaque requête)
- page_resptime (response time pour chaque ensemble de requête)
- connect (durée pour effectuer la connexion)
- reconnect (nombre de reconnexion)
- size (taille des réponses)
- session (durée d'une session)
- users (nombre d'utilisateurs simultanés)
mesures spécifiques à HTTP :
- un compteur pour chaque type de réponse (200, 404, etc.)
Depuis la version v1.0.beta1, il est possible de customiser
les mesures en définissant des "transactions" dans les
sessions. L'option --extra est nécessaire pour afficher les
statistiques os_mon (cpu, mémoire libre)
Depuis la version v1.0.beta3, un rapport HTML peut être générer
en utilisant l'option --html. Ceci utilise le Template
Toolkit. Le répertoire contenenant les templates est
~/idx-tsunami/templates ou /usr/share/idx-tsunami/template ou
encore peut être configuré par --tdir <dir>
Ex: > cd ~/.idx-tsunami/log/2004YYYY-XX:XX
> analyse_msg.pl --stats idx-tsunami.log --extra --html
4/ Pour utiliser le proxy enregistreur de sessions HTTP depuis un
navigateur, il faut d'abord démarrer le proxy avec la commande
'idx-tsunami recorder'. Celui-ci démmare le proxy qui écoute sur le
port 8090. Il suffit ensuite de paramétrer le navigateur pour
utiliser ce proxy. Toutes les requêtes et les 'thinktimes' seront
enregistrées dans un fichier directement au format XML. Une fois
terminé, lancer la commande 'idx-tsunami stop_recorder'.
2.3. Problèmes/Bugs
Envoyez vos questions/rapports de bugs à nicolas.niclausse@IDEALX.com
2.4. Portabilité
Ce logiciel n'a été testé que sous Linux. Il devrait néanmoins
fonctionner sous toute plate-forme supporté par Erlang (Solaris et
FreeBSD en particulier).
Jump to Line
Something went wrong with that request. Please try again.