Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.
Fetching latest commit…
Cannot retrieve the latest commit at this time
|ebin||*** empty log message ***|
|install-sh||add configure scripts to detect erlang installation directory and com…|
# $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 which is distributed under the GNU General Public License version 2 (see file COPYING). 1.2. What This Package Is The purpose of IDX-TSUNAMI is to simulate users in order to test the scalability and performances of IP based client/server 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. 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's session is characterize by: - a set of actions: an action can be a request ('GET' or 'POST') or a thinktime At the end of a session, the client stops. A key parameter is the mean time between clients arrival, and also 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 fixed (determinist). The traffic can be logged to a file and this file can be analyzed by scripts to get useful measurements of responses time. Since v0.2.0, these stats are also be computed in real-time. A script is provided to print graphics using gnuplot. For a list of features, see http://tsunami.idealx.org/features.en.html 2. Getting Things Installed 2.1. Dependencies - Erlang/OTP R9C-0 (http://www.erlang.org/download.html) - xmerl-0.19 (http://sowap.sourceforge.net/download.html). A debian binary package is provided in http://tsunami.idealx.org/dist/ xmerl-0.15 should work, but the notation <tag/> is not supported by this version (use instead the full <tag></tag> notation) - extended regexp module: gregexp.erl available at http://www.cellicium.com/erlang/contribs/ . The module is included in the source and binary distribution of IDX-Tsunami. It is released under the EPL Licence. - gnuplot and perl5 (optional; for graphical output with analyse_msg.pl script). The Template Toolkit is used for HTML reports (see http://template-toolkit.org/) - for distributed tests, you need an ssh access to remote machines without passwd (use a RSA/DSA key without passphrase or ssh-agent) 2.2. Compilation and Installation ./configure (this will detect your erlang installation path) make make install How to use it: 1a/ Edit ~/.idx-tsunami/idx-tsunami.xml file (read the comments for explanation on the parameters, there is a sample file /usr/share/doc/idx-tsunami/examples/idx-tsunami.xml). Log files are saved in ~/.idx-tsunami/log/ . A new subdirectory is created for each test using the current date as name (~/.idx-tsunami/log/20040217-09:40 for ex.) 1b/ Read the doc/Jabber.txt file for Jabber-specific information. 2/ use "idx-tsunami start" to launch the simulated clients (man idx-tsunami for available options) 3/ When it's finished, or during the test, you can use analyse_msg.pl ( located in /usr/lib/idx-tsunami/bin/analyse_msg.pl) to get statistical results from the logfile. Since v0.2.0, you can have 'realtime' stats using with the --stats and --plot option. It will generate graphics in postscript using gnuplot. The --stats option requires a logfile, by default it is named 'idx-tsunami.log' Every 10sec (default value), stats are dump in that log file, and the script can create graphics about the current activity. Availables stats: - request (response time for each request) - page (response time for each set of requests) - connect (duration of the connection) - reconnect (number of reconnection) - size (size of responses) - session (duration of a user's session) - users (number of simultaneous users) HTTP specific stats: - counter for each response status (200, 404, etc.) Since v1.0.beta1, you can customize statistics using "transactions" in session definition. The --extra option is required to print the os_mon statistics (monitoring of cpu and freemem) Since v1.0.beta3, you can add --html to analyse_msg.pl to have a nice HTML report (this requires the perl Template toolkit). The template directory is ~/idx-tsunami/templates or /usr/share/idx-tsunami/template or can be set with --tdir <dir> This will create two files report.html and graph.html Ex: > cd ~/.idx-tsunami/log/2004YYYY-XX:XX > analyse_msg.pl --stats idx-tsunami.log --plot --html 4/ To start the proxy recorder for HTTP sessions, use the command 'idx-tsunami recorder'. The proxy will start listening to the 8090 port. Configure your browser; all the requests will be recorded to a file in XML. To stop the recorder, type 'idx-tsunami stop_recorder' 2.3. Problems/Bugs Submit bug reports/ask questions to nicolas.niclausse@IDEALX.com 2.4. Platform Issues This package has only be tested on Linux. It should work on Erlang supported platforms (Solaris, *BSD, and maybe Win32)