Skip to content
Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.
Erlang Perl Python Shell CSS HTML
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


# $Id$



  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

  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

  2.  Getting Things Installed

  2.1.  Dependencies
  - Erlang/OTP R9C-0 (

  - xmerl-0.19 ( A debian
    binary package is provided in 

    xmerl-0.15 should work, but the notation <tag/> is not supported
    by this version (use instead the full <tag></tag> notation)

  - gnuplot and perl5 (optional; for graphical output with script).  The Template Toolkit is used for HTML
    reports (see

  - 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

  Edit Makefile if you want to change the install path (prefix)
  (/usr/lib/erlang/... by default for beam files). 

  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 ( located in /usr/lib/idx-tsunami/bin/ 
      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
       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

        Since v1.0.beta3, you can add --html to 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
          > --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
  2.4.  Platform Issues

  This package has only be tested on Linux. It should work
on Erlang supported platforms (Solaris, *BSD, and maybe Win32)

Something went wrong with that request. Please try again.