Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
SVN Revision: 185
  • Loading branch information
nniclausse committed Jan 15, 2004
1 parent 8ac455b commit 89960cc
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 35 deletions.
18 changes: 13 additions & 5 deletions CHANGES
@@ -1,12 +1,20 @@
0.2.1 -> 0.3.0: Major Feature Enhancements
- rewrite the configuration engine. now use an XML file.
- can now use several client IPs per machine
- several arrival phases can be set with different arrival rates and duration
- rewrite the configuration engine. Now use an XML file.
- add recording application: use as a HTTP proxy to record session into XML
format
- add support to OS monitoring (cpu, memory, network). Currently, use an
erlang agent on the remote nodes; SNMP is on the TODO list.
(mickael.remond@erlang-fr.org)
- can now use several IPs per client host
- several arrival phases can be set with different arrival rates and
duration
- can set test duration instead of number of users
- add user defined statistics using a 'transaction' tag
- fix cookies handling in http (mickael.remond@erlang-fr.org)
- HTTP: fix cookies and POST handling (mickael.remond@erlang-fr.org)
- HTTP: rewrite the parser (faster and cleaner)
- fix bad timeout computation when close occur for persistent client
- fix very slow implemetation ts_stats.erl:sample
- bugfixes and other enhancements.
- fix memory leak with ssl (half-closed connections)

0.2.0 -> 0.2.1: Minor bugfixes and small enhancements (9 Dec 2003)
- optimize session memory consumption: use an ets table to store session setup
Expand Down
13 changes: 9 additions & 4 deletions CONTRIBUTORS
@@ -1,8 +1,13 @@
$Id$

AUTHORS OF IDX-TSUNAMI:
AUTHOR:
======================

o Nicolas Niclausse <nicolas.niclausse@IDEALX.com>: Maintainer; design
and initial implementation; OTP redesign.
o Jean Fran�ois Lecomte <jflecomte@IDEALX.com>: several enhancements.
o Nicolas Niclausse <nicolas.niclausse@IDEALX.com>: Maintainer;

CONTRIBUTORS:
======================
o Jean Fran�ois Lecomte <jflecomte@IDEALX.com>: several enhancements for Jabber

o Mickael R�mond <mickael.remond@erlang-fr.org>: server monitoring;
HTTP tests and fixes for POST and Cookies,
9 changes: 6 additions & 3 deletions Makefile
Expand Up @@ -14,10 +14,13 @@ ERLC_EMULATOR=/usr/bin/erl
export ERLC_EMULATOR
ERL_COMPILER_OPTIONS="[warn_unused_vars]"
export ERL_COMPILER_OPTIONS
OPTIONS:=+debug_info
## for debugging
#OPTIONS:=+debug_info -DDEBUG
## To enable HIPE
#OPTIONS:=+native +\{hipe,\[o3\]\}
## To export all functions
#OPTIONS:=+export_all
#OPTIONS:=
OPTIONS:=
INC = ./include
ERLC = erlc $(OPTIONS) -I $(INC)
OUTDIR = ebin
Expand All @@ -32,7 +35,7 @@ show:

tarball:
mkdir -p $(TARDIR)
tar zcf tmp.tgz src/*.erl src/*.src include/*.hrl doc/*.txt doc/*.fig doc/*.png LISEZMOI README CONTRIBUTORS COPYING idx-tsunamirc TODO Makefile vsn.mk src/analyse_msg.pl.src FAQ CHANGES
tar zcf tmp.tgz src/*.erl src/*.src include/*.hrl doc/*.txt doc/*.fig doc/*.png LISEZMOI README CONTRIBUTORS COPYING idx-tsunami.sh idx-tsunami.xml TODO Makefile vsn.mk src/analyse_msg.pl.src FAQ CHANGES
tar -C $(TARDIR) -zxf tmp.tgz
mkdir $(TARDIR)/ebin
tar zvcf idx-tsunami-$(VSN).tar.gz $(TARDIR)
Expand Down
39 changes: 22 additions & 17 deletions README
Expand Up @@ -32,9 +32,9 @@

1.2. What This Package Is

The purpose of this package is to simulate users in order to test
The purpose of IDX-TSUNAMI 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
applications. Currently, HTTP and Jabber protocol have been
implemented and tested, but it can be easily extended (see
doc/Design.txt). IDX-TSUNAMI use the Erlang language.

Expand All @@ -47,18 +47,21 @@
stochastic model, in order to achieve a more realistic traffic than
other simple models (deterministics).

In this context, a client is characterize by:
- the mean time elapsed between each request ("think time")
- the number of requests during a session
In this context, a client's session is characterize by:
- the mean time elapsed between requests ("think time")
- a list of requests during a session
- the type and parameters of requests (including, for example,
'chat' message size for Jabber)

Another key parameter is the arrival rate of clients.
At the end of a session, the client stops.

Another key parameters are the mean time between clients arrival,
and the duration of the test.

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 thinktime
can also be non random.
can also be fixed (determinist).

The traffic can be logged to a file and, after completion of
all the clients, these files can be analyzed by scripts to get
Expand All @@ -67,8 +70,9 @@
are computed, for different types of messages: authentication,
chat, offline messages ...) and generic statistics.

Since v0.2.0, stats can also be computed in real-time, and dumped in
a text file at regular interval.
Since v0.2.0, stats are also be computed in real-time, and dumped in
a text file at regular interval. A script is provided to print
graphics using gnuplot.

This software is currently under development and can be enhanced
in many ways (see TODO file).
Expand All @@ -84,6 +88,9 @@

- gnuplot and perl5 (optional; for graphical output with analyse_msg.pl script)

- for distributed test, you need an ssh access to remote machines
without passwd (use a RSA key without passphrase)

2.2. Compilation and Installation

Edit Makefile if you want to change the install path (prefix)
Expand All @@ -97,28 +104,27 @@
make install

How to use it:
1a/ Edit etc/idx-tsunami.xml file (read the comments for explanation on
the parameters, there is a sample file etc/idx-tsunami_default.xml)
1a/ Edit $prefix/etc/idx-tsunami.xml file (read the comments for explanation
on the parameters, there is a sample file etc/idx-tsunami_default.xml)

1b/ Read the doc/Jabber.txt file for Jabber-specific information.

2/ use "idx-tsunami 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 for Jabber, see comments in 'idx-tsunami.xml' ).
statistical results from the logfiles.

Since v0.2.0, you can have 'realtime' stats using with the
--stats and --plot option (no monitoring needed). It will
generate graphics in postscript using gnuplot. For HTTP, you
MUST use --stats. This option requires a logfile, by default it
is named 'idx-tsunami.log0'
is named 'idx-tsunami.log-YYYY:MM:DD-HH:mm'
Every 10sec (default value), stats are dump in the log file,
and the script can create graphics about the current activity.

Availables stats:
- response_time (response time for each subrequest (~ request for HTTP))
- page_resptime (response time for each 'action' (~ page for HTTP))
- response_time (response time for each request (~ request for HTTP))
- page_resptime (response time for each set of requests (~ page for HTTP))
- connect (duration of the connection)
- reconnect (number of reconnection)
- size (size of responses)
Expand All @@ -127,7 +133,6 @@

HTTP specific stats:
- counter for each response status (200, 404, etc.)
- parse_error (error while parsing HTTP Headers and body)
- http_bad_content_length (Body is larger than expected)
- http_no_content_length

Expand Down
10 changes: 4 additions & 6 deletions TODO
@@ -1,20 +1,18 @@

P1 finish new configuration system

P2 add proxy mode to build session file
P2 add remote monitoring of servers via SNMP
P2 add SNMP support to remote monitoring of servers
P2 make jabber work again with new configuration system
P2 handle WWW-authentication

P3 improve documentation
P3 other useful protocols: ftp, smtp, ldap, sql ... ?
P3 handle all cookies attributes
P3 add custom http headers ?

P4 add custom http headers ?
P4 add multiple tcp connections per client (for http) ?
P4 add capability to send several samples at once to ts_mon
P4 clients may do a checksum to control integrity of responses ?

P5 groupchat for Jabber
P5 handle http/1.1 pipelining ?

- cache ssl session ID => NOT SUPPORTED BY SSL APPLICATION

0 comments on commit 89960cc

Please sign in to comment.