Permalink
Browse files

import version publique du client de test de mont�e en charge.

SVN Revision: 2
  • Loading branch information...
1 parent cf947d6 commit da16c35c496b39621e104655b4c10ffcd8d3838b @nniclausse nniclausse committed May 30, 2001
View
@@ -0,0 +1,8 @@
+$Id$
+
+AUTHORS OF IDX-TSUNAMI:
+======================
+
+o Nicolas Niclausse <nicolas.niclausse@IDEALX.com>: Maintainer; idea and initial
+ implementation; OTP redesign.
+o Jean Fran�ois Lecomte <jflecomte@IDEALX.com>: several enhancements.
View
340 COPYING

Large diffs are not rendered by default.

Oops, something went wrong.
View
123 LISEZMOI
@@ -0,0 +1,123 @@
+# $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.
+
+ Les information de Copyright sont disponibles dans 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, seul le protocole
+ Jabber est impl�ment� et test�, mais IDX-TSUNAMI est tr�s facilement
+ extensible (voir le fichier doc/Design_fr.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:
+ - le temps �coul� entre chacun de ses messages/requ�tes ("think time")
+ - le nombre de requ�tes effectu�es lors d'une session
+ - le type et les param�tres param�tres des requ�tes (par exemple
+ le type et la taille du message pour Jabber)
+
+ Un autre param�tre est le taux d'arriv�s des clients (ie. le nombre
+ de clients arrivant sur le syst�me -- d�marrant leur session -- par
+ unit� de temps).
+
+ Dans l'impl�mentation actuelle, la taux d'arriv� 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� est un processus de Poisson).
+
+ La trafic peut �tre "loggu�" dans des fichiers, afin de pouvoir
+ calculer toutes sorte de mesures (temps de r�ponse) apr�s coup. Un
+ script (calculant notamment les moyennes, �cart-type et m�diane des
+ temps de r�ponse) est fourni pour le protocole Jabber.
+
+ 2. Installation
+
+ 2.1. D�pendances
+
+ - n�cessite Erlang/OTP R7B-0 ou sup�rieur (test� avec la version R7B-2)
+ (http://www.erlang.org/download.html)
+
+ - perl5 (pour utiliser les scripts)
+
+ - gnuplot (optionnel, utilis� pour les sorties graphiques du script
+ analyse_msg.pl)
+
+ 2.2. Compilation et Installation
+
+ �diter les fichiers Makefile et idx-tsunami.pl si vous voulez
+ changer le chemin par d�faut (/usr/local/idx-tsunami/).
+
+ �diter src/tsunami.rel.src si votre version d'Erlang n'est pas R7B-2
+ (les num�ros de version des modules erts, kernel et stdlib sont
+ diff�rents d'une version d'Erlang � l'autre)
+
+ make
+ make install
+
+ Comment l'utiliser:
+ 1a/ �diter le fichier etc/idx-tsunamirc (toutes les options sont
+ d�crites en commentaires)
+
+ 1b/ Lire le fichier doc/Jabber.txt pour des informations sp�cifiques �
+ Jabber
+
+ 2/ utilisez le script "idx-tsunami.pl --start" pour d�marrer les
+ clients simul�s.
+
+ 3/ Lorsque c'est termin� (idx-tsunami.pl --stop pour forcer) Le
+ script analyse_msg.pl g�n�re une synth�se des temps de r�ponses
+ (n�cessite un monitoring full ou light); ce script peut �galement
+ g�n�rer des graphes avec l'option --plot.
+
+ 2.3. Probl�mes/Bugs
+
+ Envoyez vos questions/rapports de bugs aux auteurs (cf. fichier
+ CONTRIBUTORS).
+
+ 2.4. Portabilit�
+
+ Ce logiciel n'a �t� test� que sous Linux. Il devrait n�anmoins
+ fonctionner sus toute plateforme support� par Erlang (Solaris et
+ FreeBSD en particulier)
+
+
+
View
@@ -0,0 +1,83 @@
+# $Id$
+
+
+include vsn.mk
+VSN = $(IDX-TSUNAMI_VSN)
+TSUNAMIPATH = .
+TARDIR = idx-tsunami-$(VSN)
+PA = -pa ./ebin -pa ./src -pa . -pa ./system -pa ../ebin -pa .. -pa ../system -pa ../src
+
+prefix = /usr/local/idx-tsunami
+
+ERLC = erlc
+OUTDIR = ebin
+OBJS = \
+ $(OUTDIR)/tsunami.beam \
+ $(OUTDIR)/ts_launcher.beam \
+ $(OUTDIR)/ts_client.beam \
+ $(OUTDIR)/ts_client.beam \
+ $(OUTDIR)/ts_mon.beam \
+ $(OUTDIR)/ts_client_rcv.beam \
+ $(OUTDIR)/ts_utils.beam \
+ $(OUTDIR)/ts_profile.beam \
+ $(OUTDIR)/ts_stats.beam \
+ $(OUTDIR)/ts_user_server.beam \
+ $(OUTDIR)/ts_msg_server.beam \
+ $(OUTDIR)/ts_req_server.beam \
+ $(OUTDIR)/ts_timer.beam \
+ $(OUTDIR)/ts_client_sup.beam \
+ $(OUTDIR)/ts_sup.beam \
+ $(OUTDIR)/jabber_common.beam \
+ $(OUTDIR)/jabber_dynamic.beam \
+ $(OUTDIR)/jabber_roster.beam \
+ $(OUTDIR)/jabber_online.beam \
+ $(OUTDIR)/jabber_offline.beam \
+ $(OUTDIR)/jabber_auth.beam \
+ $(OUTDIR)/jabber_unique.beam \
+ $(OUTDIR)/jabber_register.beam \
+ $(OUTDIR)/make_boot.beam
+
+all: tsunami.boot
+
+tarball:
+ mkdir -p $(TARDIR)
+ tar zcf tmp.tgz src/*.erl src/*.src include/*.hrl doc/*.txt LISEZMOI README CONTRIBUTORS COPYING src/idx-tsunami.pl.src idx-tsunamirc TODO Makefile vsn.mk src/analyse_msg.pl.src
+ tar -C $(TARDIR) -zxf tmp.tgz
+ mkdir $(TARDIR)/ebin
+ tar zvcf idx-tsunami-$(VSN).tar.gz $(TARDIR)
+ rm -fr $(TARDIR)
+ rm -fr tmp.tgz
+
+
+clean:
+ rm -f $(OBJS) tsunami.boot tsunami.script ebin/tsunami.app ebin/tsunami.rel ebin/idx-tsunami.pl ebin/analyse_msg.pl
+
+tsunami.boot: $(OBJS) $(UTILS) src/tsunami.rel.src src/tsunami.app.src src/analyse_msg.pl.src src/idx-tsunami.pl.src
+ sed -e 's;%VSN%;$(VSN);' ./src/tsunami.app.src > ./ebin/tsunami.app
+ sed -e 's;%VSN%;$(VSN);' ./src/tsunami.rel.src > ./ebin/tsunami.rel
+ sed -e 's;%VSN%;$(VSN);' ./src/idx-tsunami.pl.src > ./ebin/idx-tsunami.pl
+ sed -e 's;%VSN%;$(VSN);' ./src/analyse_msg.pl.src > ./ebin/analyse_msg.pl
+ erl -noshell $(PA) ./src -s make_boot make_boot tsunami
+
+$(OUTDIR)/%.beam: ebin/%.erl
+ $(ERLC) -o $(OUTDIR) $<
+
+$(OUTDIR)/%.beam: src/%.erl include/*.hrl
+ $(ERLC) -o $(OUTDIR) $<
+
+install: tsunami.boot
+ mkdir -p $(DESTDIR)/$(prefix)
+ mkdir -p $(DESTDIR)/$(prefix)/bin
+ mkdir -p $(DESTDIR)/$(prefix)/log
+ mkdir -p $(DESTDIR)/$(prefix)/etc
+ mkdir -p $(DESTDIR)/$(prefix)/bin
+ install -m 0644 tsunami.boot $(DESTDIR)/$(prefix)/bin
+ install -m 0644 idx-tsunamirc $(DESTDIR)/$(prefix)/etc
+ install ebin/idx-tsunami.pl $(DESTDIR)/${prefix}/bin
+ install ebin/analyse_msg.pl $(DESTDIR)/${prefix}/bin
+ mkdir -p $(DESTDIR)/$(prefix)
+ mkdir -p $(DESTDIR)/$(prefix)/erlang
+ mkdir -p $(DESTDIR)/$(prefix)/erlang/tsunami-$(VSN)
+ mkdir -p $(DESTDIR)/$(prefix)/erlang/tsunami-$(VSN)/ebin
+ install $(OBJS) $(DESTDIR)/$(prefix)/erlang/tsunami-$(VSN)/ebin
+
View
116 README
@@ -0,0 +1,116 @@
+# $Id$
+
+ IDX-TSUNAMI README
+ IDEALX
+ ____________________________________________________________
+
+ Table of Contents
+
+
+ 1. Introduction
+
+ 1.1 General
+ 1.2 What This Package Is
+
+ 2. Getting Things Installed
+
+ 2.1 Dependencies
+ 2.2 Compilation and Installation
+ 2.3 Problems/Bugs
+ 2.4 Platform Issues
+
+ ______________________________________________________________________
+
+ 1. Introduction
+
+ 1.1. General
+
+ This document gives pointers for information on this package.
+
+ Copyright information can be found in the file "COPYING."
+
+ 1.2. What This Package Is
+
+ The purpose of this package is to simulate users in order to test
+ the scalability and performances of IP based client/server
+ applications. Currently, only the Jabber protocol has been
+ implemented and tested, but it can be easily extended (see
+ doc/Design.txt). IDX-TSUNAMI use the Erlang language.
+
+ This tool can simulate thousands of users concurrently, and can be
+ distributed on several client machines. Up to 10000 users can be
+ simulated on a single machine (the limit depends on the hardware and
+ also on the activity of the simulated clients).
+
+ The idea is to simulate the behavior of a real world client using a
+ stochastic model, in order to achieve a more realistic traffic than
+ other simple models (deterministics).
+
+ In this context, a client is characterize by:
+ - the time elapsed between each request ("think time")
+ - the number of requests during a session
+ - the type and parameters of requests (including, for example,
+ message size for Jabber)
+
+ Another key parameter is the arrival rate of clients.
+
+ In the current implementation, the client arrival rate and the user
+ "think time" are represented by an exponential distribution
+ (therefore, the arrival process is a Poisson process)
+
+ The traffic can be logged to a file and, after completion of
+ all the clients, these files can be analyzed by scripts to get
+ useful measurements of responses time. An small script is furnished
+ for the Jabber protocol (mean, median, standard variation, and so on
+ are computed, for different types of messages: authentication,
+ chat, offline messages ...)
+
+ This software is currently under development and can be enhanced
+ in many ways (see TODO file).
+
+ 2. Getting Things Installed
+
+ 2.1. Dependencies
+
+ - requires Erlang/OTP R7B-0 or up (tested with R7B-2)
+ (http://www.erlang.org/download.html)
+
+ - perl5 (if you want tu use the scripts)
+
+ - gnuplot (optional; for graphical output with analyse_msg.pl script)
+
+ 2.2. Compilation and Installation
+
+ Edit Makefile and idx-tsunami.pl if you want to change the install
+ path (/usr/local/idx-tsunami by default)
+
+ Edit src/tsunami.rel.src if your Erlang version is not R7B-2 and set
+ erts, kernel and stdlib version according to your Erlang
+ distribution.
+
+ make
+ make install
+
+ How to use it:
+ 1a/ Edit etc/idx-tsunamirc file (read the comments for explanation on
+ the parameters)
+
+ 1b/ Read the doc/Jabber.txt file for Jabber-specific information.
+
+ 2/ use the script "idx-tsunami.pl --start" to launch the simulated clients.
+
+ 3/ When it's finished, you can use analyse_msg.pl to get
+ statistical results from the logfiles (require at least 'light'
+ monitoring, see comments in 'idx-tsunamirc' )
+
+ 2.3. Problems/Bugs
+
+ Submit bug reports/ask questions to the authors (see CONTRIBUTORS)
+
+ 2.4. Platform Issues
+
+ This package has only be tested on Linux. It should work
+ on Erlang supported platforms (Solaris, *BSD)
+
+
+
View
21 TODO
@@ -0,0 +1,21 @@
+- groupchat for Jabber
+
+- Maybe use a single gen_server instead of 4 (msg, user, request, timer)
+
+- instead of logging everything, let the client (or the monitor)
+ compute stats ?
+
+- Maybe use a single monitor process for all beams ? this allow us to
+centralise the results, (but it can be a bottleneck if too much
+logging data are sent to it ?)
+
+- implement client parsing server response (needed for some protocols)
+
+- clients may do a checksum to control integrity of responses ?
+
+- implement http protocol:
+ - reuse already existing erlang modules.
+ - handle non persistant connections (http/1.0) within a user session
+ - how to handle http/1.1 pipelining ?
+
+- other useful protocols: ftp, ldap, sql ... ?
Oops, something went wrong.

0 comments on commit da16c35

Please sign in to comment.