Permalink
Browse files

update doc

SVN Revision: 377
  • Loading branch information...
1 parent 1033124 commit 9d957d959a5d90f3661acc6419dc99f7b243f68e @nniclausse nniclausse committed Aug 9, 2004
Showing with 44 additions and 60 deletions.
  1. +12 −19 doc/Design.txt
  2. +32 −41 doc/Design_fr.txt
View
@@ -15,7 +15,7 @@ The application is now split in two (see tsunami-inside.png for an overview):
* ts_os_mon (gen_server). Use to monitor remote node activity (cpu,
memory, network traffic). Currently, use an erlang agent on remote nodes.
- * ts_timer (used by ts_client_rcv when ack is global) (gen_fsm)
+ * ts_timer (used by ts_client when ack is global) (gen_fsm)
servers used to construct messages:
@@ -31,24 +31,16 @@ This application is simpler:
* ts_session_cache (gen_server) cache the sessions's definition (ask
the config_server if it's not yet in the cache)
- * 2 process per simultated client (ts_client, ts_client_rcv), under
+ * 1 process per simultated client (ts_client), under
the supervision of ts_clients_sup ( using simple_one_for_one )
Main modules:
============
1/ ts_launcher. the master process that spawns other simulated clients:
- 1.1/ client processes: at each simulated client correspond 2 erlang
- process:
-
- a/one that will initiate TCP|UDP|SSL connection and will send
- messages (ts_client module). These processes are spawns by
- ts_launcher (using an sleeping time between two clients
- following an exponential distribution).
-
- b/ Each of these process will spawn a new process to handle
- incoming data from the server (ts_client_rcv module).
+ 1.1/ client processes: at each simulated client correspond 1 erlang
+ process (ts_client)
1.2/ monitoring process (ts_mon)
@@ -82,12 +74,13 @@ How to add a new protocol, or extend an existing one:
To add a new protocol, you have to create a module that implement and
exports:
- init_dynparams/0,
- add_dynparams/2,
- get_message/1,
- parse/2,
- parse_config/2,
- new_session/0
+-export([init_dynparams/0,
+ add_dynparams/4,
+ get_message/1,
+ session_defaults/0,
+ parse/2,
+ parse_config/2,
+ new_session/0]).
References:
@@ -117,6 +110,6 @@ References:
Z. Liu, N. Niclausse, C. Jalpa-Villanueva & S. Barbier. Traffic
Model and Performance Evaluation of Web Servers Rapport de
- recherche INRIA, RR-3840 (http://www.inria.fr/rrrt/rr-3840.html)
+recherche INRIA, RR-3840 (http://www.inria.fr/rrrt/rr-3840.html)
View
@@ -1,83 +1,74 @@
-**********************************************************
-*** Ce document n'est pas � jour. Cf. version anglaise ***
-**********************************************************
Arbre de supervision OTP:
========================
+Tsunami est divis� en deux applications aux sens OTP:
+
+** un controlleur unique (tsunami_controller)
+
+ * ts_config_server (gen_server). Serveur de configuration server. La
+ d�finition des sessions est gard� part le serveur de configuration.
+
* ts_mon (gen_server)
- * ts_timer (utilis� par ts_client_rcv en global) (gen_fsm)
+ * ts_os_mon (gen_server)
- * ts_client_sup -> ts_client, ts_client_rcv
+ * ts_timer (utilis� par ts_client en global) (gen_fsm)
serveurs utilis�s pour construire les messages:
- * ts_req_server (gen_server) permet de g�n�rer des messages � partir
- d'un fichier externe
-
* ts_msg_server (gen_server)
* ts_user_server (gen_server) utilis� par ts_launcher et jabber_*
pour l'unicit� des utilisateurs
+** plusieurs injecteurs (tsunami). Plusieus noeuds peuvent �tre actifs
+ simultan�ment
+
* ts_launcher (gen_fsm) lance les clients simul�s (selon un processus de
Poisson).
+ * ts_session_cache (gen_server) cache les sessions (interroge le
+ config_server si la session n'est pas encore dans le cache)
+
+ * 1 processus erlang par client simul� (ts_client), sous la
+ supervision de ts_client_sup (simple_one_for_one)
+
Le principaux modules sont:
==========================
- 1/ ts_launcher. Le processus ma�tre qui va lancer les autres processus :
+ 1/ ts_launcher. Le processus ma�tre qui va lancer les autres
+ processus (un par beam)
1.1/ processus clients initiant les connexions TCP
(module ts_client). Ces processus sont lanc�s par le processus
ma�tre avec un intervalle de temps suivant une distribution de
probabilit� exponentielle d'intensit� param�trable au d�marrage
- (unit� = sec). Chaque processus client va lancer un processus
- pour recevoir et traiter les messages (module
- ts_client_rcv). Le nombre de clients total est �galement
+ (unit� = sec). Le nombre de clients total est �galement
param�trable au d�marrage du processus ma�tre (il s'agit bien du
nombre de client total et non du nombre de clients simultan�s)
- Warning: Tous les messages d'une session d'un utilisateur sont
- construits par ts_launcher, juste avant de lancer le processus
- client (dans une liste). Par cons�quent, si le nombre de
- messages est tr�s grand, cela peut prendre BEAUCOUP de
- m�moire. Pour r�aliser de tr�s long tests, if faut utiliser un
- message de type 'dynamic' (voir jabber_dynamic et Jabber.txt
- pour un exemple d'utilisation), qui sera construit � la vol�e
- par le client autant de fois que n�cessaire.
-
- Les param�tres importants r�gissant le comportement des
- utilisateurs (pour Jabber) sont:
-
- 1/ taille des messages de chat en octets (250 par d�faut)
-
- 2/ distribution de probabilit� des intervalles de temps
- entre chaque envoi de message de chat (loi
- exponentielle).
-
- 3/ Le nombre de messages de chat envoy�s par chaque
- client. La valeur par d�faut est de 20.
-
1.2/ Le processus de monitoring (module ts_mon)
- 2/ Un module pour g�rer les �chantillons al�atoire (module ts_stats)
-
- 3/ Un module (ts_profile) g�n�rique pour g�rer les sessions des clients
+ 2/ Un module pour g�rer les �chantillons al�atoires (module ts_stats)
4/ Les modules sp�cifiques pour g�rer les diff�rents protocoles (module
- jabber_online par ex.).
+ ts_jabber ou ts_http par ex.).
Comment rajouter un nouveau protocole ou �tendre un existant:
============================================================
- Tout protocole doit impl�menter l'API d�finie dans profile.erl, ie.
- doit impl�menter les fonctions suivantes:
- - get_client/2
- - get_random_message/1
+ Tout protocole doit exporter les fonctions suivantes:
+
+-export([init_dynparams/0,
+ add_dynparams/4,
+ get_message/1,
+ session_defaults/0,
+ parse/2,
+ parse_config/2,
+ new_session/0]).
R�f�rences:

0 comments on commit 9d957d9

Please sign in to comment.