Skip to content
Newer
Older
100644 118 lines (73 sloc) 3.4 KB
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
1
2 OTP Supervision tree:
3 ====================
4
5345a3b @nniclausse rename idx-tsunami to tsung step 3
nniclausse authored Nov 27, 2005
5 The application is now split in two (see tsung-inside.png for an overview):
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
6
5345a3b @nniclausse rename idx-tsunami to tsung step 3
nniclausse authored Nov 27, 2005
7 ** a single controller (tsung_controller)
5ecc4db @nniclausse - update design doc
nniclausse authored Feb 12, 2003
8
a3a0628 @nniclausse update
nniclausse authored Dec 19, 2003
9 * ts_config_server (gen_server). Configuration server. Session's
10 definitions are kept by the config server.
11
5ecc4db @nniclausse - update design doc
nniclausse authored Feb 12, 2003
12 * ts_mon (gen_server). Each client send reports of stats to this
13 server. Several types of messages are handled by ts_mon.
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
14
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
15 * ts_os_mon (gen_server). Use to monitor remote node activity (cpu,
16 memory, network traffic). Currently, use an erlang agent on remote nodes.
17
9d957d9 @nniclausse update doc
nniclausse authored Aug 9, 2004
18 * ts_timer (used by ts_client when ack is global) (gen_fsm)
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
19
20 servers used to construct messages:
21
22 * ts_msg_server (gen_server)
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
23 * ts_user_server (gen_server) used by jabber_* for unicity of users id
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
24
5345a3b @nniclausse rename idx-tsunami to tsung step 3
nniclausse authored Nov 27, 2005
25 ** several clients (tsung) Several nodes can be used simultaneously
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
26
5ecc4db @nniclausse - update design doc
nniclausse authored Feb 12, 2003
27 This application is simpler:
28
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
29 * ts_launcher (gen_fsm) launch simulated users.
30
a3a0628 @nniclausse update
nniclausse authored Dec 19, 2003
31 * ts_session_cache (gen_server) cache the sessions's definition (ask
32 the config_server if it's not yet in the cache)
33
9d957d9 @nniclausse update doc
nniclausse authored Aug 9, 2004
34 * 1 process per simultated client (ts_client), under
5ecc4db @nniclausse - update design doc
nniclausse authored Feb 12, 2003
35 the supervision of ts_clients_sup ( using simple_one_for_one )
36
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
37 Main modules:
38 ============
39
5ecc4db @nniclausse - update design doc
nniclausse authored Feb 12, 2003
40 1/ ts_launcher. the master process that spawns other simulated clients:
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
41
9d957d9 @nniclausse update doc
nniclausse authored Aug 9, 2004
42 1.1/ client processes: at each simulated client correspond 1 erlang
43 process (ts_client)
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
44
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
45 1.2/ monitoring process (ts_mon)
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
46
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
47 2/ statistical module (ts_stats)
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
48
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
49 3/ protocol-specific modules (ts_jabber and ts_http, for
50 example).
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
51
5345a3b @nniclausse rename idx-tsunami to tsung step 3
nniclausse authored Nov 27, 2005
52 tsung use different types of acknoledgements to determine
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
53 when a the response of a request is over. For each requests, 4
54 options are possible:
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
55
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
56 * parse -> the receiving process parse the response from the
57 server dans can warn the sending process when the response is
58 finish (function parse/2). This is used for HTTP.
59
60 * no_ack: as soon as the request has been sent, the next one is
61 executed (it can be a thinktime)
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
62
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
63 * local: the request is acknoledge once a packet is received
64
65 * global: the request is acknoledge once all clients has
66 received an acknoledgement. This has been introduced for
67 Jabber: with that, you can set that users starts talking when
68 everyone is connected.
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
69
70
71 How to add a new protocol, or extend an existing one:
72 ====================================================
73
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
74 To add a new protocol, you have to create a module that implement and
75 exports:
76
9d957d9 @nniclausse update doc
nniclausse authored Aug 9, 2004
77 -export([init_dynparams/0,
78 add_dynparams/4,
79 get_message/1,
80 session_defaults/0,
81 parse/2,
82 parse_config/2,
83 new_session/0]).
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
84
520e57b @nniclausse template file for new plugins
nniclausse authored Sep 5, 2005
85 There is a template file is doc/ts_template.erl
86
5ecc4db @nniclausse - update design doc
nniclausse authored Feb 12, 2003
87
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
88 References:
89 ==========
90
91 - Erlang
92
93 http://www.erlang.org/
94
95 Design principles:
40a27bb @nniclausse update doc (typos)
nniclausse authored Sep 27, 2001
96 http://www.erlang.org/doc/r7b/doc/design_principles/part_frame.html
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
97
98 - Jabber
99
100 http://docs.jabber.org/general/html/protocol.html
101
102
103 - Stochastics models:
104
105 For more details on stochastics models and application to Web
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
106 workload generators, have a look at:
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
107
108 Nicolas Niclausse. Modélisation, analyse de performance et
109 dimensionnement du World Wide Web. Thèse de Doctorat (PhD), Université
110 de Nice - Sophia Antipolis, Juin 1999.
111 http://www-sop.inria.fr/mistral/personnel/Nicolas.Niclausse/these.html
112
113 Z. Liu, N. Niclausse, C. Jalpa-Villanueva & S. Barbier. Traffic
114 Model and Performance Evaluation of Web Servers Rapport de
9d957d9 @nniclausse update doc
nniclausse authored Aug 9, 2004
115 recherche INRIA, RR-3840 (http://www.inria.fr/rrrt/rr-3840.html)
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
116
117
Something went wrong with that request. Please try again.