Skip to content
Newer
Older
100644 116 lines (72 sloc) 3.36 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
4b876b8 @nniclausse add graph of idx-tsunami internals
nniclausse authored Feb 12, 2003
5 The application is now split in two (see tsunami-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
5ecc4db @nniclausse - update design doc
nniclausse authored Feb 12, 2003
7 ** a single controller (tsunami_controller)
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
5ecc4db @nniclausse - update design doc
nniclausse authored Feb 12, 2003
25 ** several clients (tsunami) 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
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
52 IDX-TSUNAMI use different types of acknoledgements to determine
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
5ecc4db @nniclausse - update design doc
nniclausse authored Feb 12, 2003
85
da16c35 @nniclausse import version publique du client de test de mont�e en charge.
nniclausse authored May 30, 2001
86 References:
87 ==========
88
89 - Erlang
90
91 http://www.erlang.org/
92
93 Design principles:
40a27bb @nniclausse update doc (typos)
nniclausse authored Sep 27, 2001
94 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
95
96 - Jabber
97
98 http://docs.jabber.org/general/html/protocol.html
99
100
101 - Stochastics models:
102
103 For more details on stochastics models and application to Web
c5fcb80 @nniclausse update doc
nniclausse authored Jan 15, 2004
104 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
105
106 Nicolas Niclausse. Modélisation, analyse de performance et
107 dimensionnement du World Wide Web. Thèse de Doctorat (PhD), Université
108 de Nice - Sophia Antipolis, Juin 1999.
109 http://www-sop.inria.fr/mistral/personnel/Nicolas.Niclausse/these.html
110
111 Z. Liu, N. Niclausse, C. Jalpa-Villanueva & S. Barbier. Traffic
112 Model and Performance Evaluation of Web Servers Rapport de
9d957d9 @nniclausse update doc
nniclausse authored Aug 9, 2004
113 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
114
115
Something went wrong with that request. Please try again.