[[TOC]]
= Load Testing =
We recommend to use [http://tsung.erlang-projects.org Tsung] as a feature-rich & high-performing tool.
Testing should normally be done from a separate machine. [InstallationGuidelines/Amazon Amazon] is great as a platform for accessing a lof of resources for a short period of time.
* A 'Micro' instance is sufficient for testing 100 concurrent users (the dynamic parts of the site)
* A 'High CPU' instance is required for testing 6,500 concurrent users (the static parts of the site)
== Server Setup ==
Tsung can include results on Server Load if SNMP is enabled:
{{{
apt-get install -y snmpd
vim /etc/snmp/snmpd.conf
#agentAddress udp:127.0.0.1:161
agentAddress udp:161,udp6:[::1]:161
#rocommunity public default -V systemonly
rocommunity public 0.0.0.0/0
/etc/init.d/snmpd restart
}}}
Notes:
* Log files can fill-up quickly, especially when testing a large number of users for the static parts of the site
* Database will need resetting to clear any transactions made
* Reboot between tests to reset the RAM/Swap
== Client Setup ==
=== Installation ===
{{{
apt-get install -y erlang gnuplot libtemplate-perl make lrzsz vim
wget http://tsung.erlang-projects.org/dist/tsung-1.4.1.tar.gz
tar zxvf tsung-1.4.1.tar.gz
cd tsung-1.4.1
./configure
make
make install
ssh localhost
yes to accept hostkey
exit
}}}
=== Static Tests ===
It is recommended to make the homepage of the site static. The performance of this page can be tested using {{{~/.tsung/tsung.xml}}}:
{{{
}}}
=== Dynamic Tests ===
A set of transactions can be performed with an increasing level of load {{{~/.tsung/tsung.xml}}}:
{{{
}}}
=== Run Tests ===
(replace 20xxx with the name of the folder created)
{{{
tsung start
cd ~/.tsung/log/20xxx
/usr/lib/tsung/bin/tsung_stats.pl
cd ..
tar cvf 20xxx.tar 20xxx/
gzip -9 20xxx.tar
sz 20xxx.tar.gz
rm -rf 20xxx*
}}}
=== Analyse Results ===
Open report.html in a web browser:
* Check that there are minimal errors
* Check the Response time (Request is per-request, Transaction is for the whole script)
----
DeveloperGuidelinesTesting