2. Features
2.1. Tsung main features
- High Performance: Tsung can simulate a huge number of
simultaneous users per physical computer: It can simulates thousands
of users on a single CPU (Note: a simulated user is not always
active: it can be idle during a thinktime
period). Traditional injection tools can hardly go further than a
few hundreds (Hint: if all you want to do is requesting a single URL
in a loop, use ab; but if you want to build complex
scenarios with extended reports, Tsung is for you).
- Distributed: the load can be distributed on a cluster of client machines
- Multi-Protocols using a plug-in system: HTTP (both standard web
traffic and SOAP), WebDAV, Jabber/XMPP and PostgreSQL are currently
supported. LDAP and MySQL plugins were first included in the 1.3.0 release.
- SSL support
- Several IP addresses can be used on a single machine using the underlying OS IP Aliasing
- OS monitoring (CPU, memory and network traffic) using Erlang agents on remote servers or SNMP
- XML configuration system: complex user’s scenarios are
written in XML. Scenarios can be written with a simple browser using the
Tsung recorder (HTTP and PostgreSQL only).
- Dynamic scenarios: You can get dynamic data from the
server under load (without writing any code) and re-inject it in
subsequent requests. You can also loop, restart or stop a
session when a string (or regexp) matches the server response.
- Mixed behaviours: several sessions can be used to simulate
different type of users during the same benchmark. You can define
the proportion of the various behaviours in the benchmark scenario.
- Stochastic processes: in order to generate a realistic
traffic, user thinktimes and the arrival rate can be randomized
using a probability distribution (currently exponential)
2.5. PostgreSQL related features
- Basic and MD5 Authentication
- Simple Protocol
- Extended Protocol (new in version 1.4.0 )
- Proxy mode to record sessions
2.11. Complete reports set
Measures and statistics produced by Tsung are extremely feature-full.
They are all represented as a graphic. Tsung produces
statistics regarding:
- Performance: response time, connection time, decomposition of the
user scenario based on request grouping instruction (called
transactions), requests per second
- Errors: Statistics on page return code to trace errors
- Target server behaviour: An Erlang agent can gather information
from the target server(s). Tsung produces graphs for CPU and memory
consumption and network traffic. SNMP and munin is also supported to
monitor remote servers.
par Note that Tsung takes care of the synchronization process by itself. Gathered statistics are «synchronized».
It is possible to generate graphs during the benchmark as statistics are gathered in real-time.
2.12. Highlights
Tsung has several advantages over other injection tools:
- High performance and distributed benchmark: You can use Tsung to simulate tens of thousands of virtual users.
- Ease of use: The hard work is already done for all supported
protocol. No need to write complex scripts. Dynamic scenarios only requires small trivial piece of code.
- Multi-protocol support: Tsung is for example one of the only tool to benchmark SOAP applications
- Monitoring of the target server(s) to analyze the behaviour and
find bottlenecks. For example, it has been used to analyze cluster
symmetry (is the load properly balanced ?) and to determine the best
combination of machines on the three cluster tiers (Web engine, EJB
engine and database)