Tsung (formerly IDX-Tsunami) is a distributed load testing tool. It is protocol-independent and can currently be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber/XMPP servers. It is distributed under the GNU General Public License version 2.
Tsung’s main strength is its ability to simulate a huge number of simultaneous user from a single machine. When used on cluster, you can generate a really impressive load on a server with a modest cluster, easy to set-up and to maintain. You can also use Tsung on a cloud like EC2.
Tsung is developed in Erlang and this is where the power of Tsung resides. Erlang is a concurrency-oriented programming language. Tsung is based on the Erlang OTP (Open Transaction Platform) and inherits several characteristics from Erlang:
- Performance: Erlang has been made to support hundred thousands of lightweight processes in a single virtual machine.
- Scalability: Erlang runtime environment is naturally distributed, promoting the idea of process’s location transparency.
- Fault-tolerance: Erlang has been built to develop robust, fault-tolerant systems. As such, wrong answer sent from the server to Tsung does not make the whole running benchmark crash.
More information on Erlang on http://www.erlang.org.