Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.

tree: e894acfcb4

Fetching latest commit…

Cannot retrieve the latest commit at this time

README
# $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)



Something went wrong with that request. Please try again.