Tsung — это распределенная система нагрузочного тестирования, написанная на Erlang'е. Заявлена поддержка HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and XMPP/Jabber. В этой статье я опишу как протестировать обычный web сайт на нагрузку.


Почему Tsung


Во первых это приложение бесплатно. Во вторых приложение написано на Erlang'e, что дает ему преимущество перед другими продуктами, в способности симулировать огромное количество одновременных запросов.

Установка


Для установки вам потребуется Linux дистрибутив, я использовал debian. Необходимо проделать следующую последовательность действий:
  1. apt-get install erlang
  2. apt-get install gnuplot-nox libtemplate-perl libhtml-template-perl libhtml-template-expr-perl
  3. Скачать последнюю версию tsung-1.4.1.tar.gz
  4. Распаковать tar -zxvf tsung-1.4.1 .tar.gz
  5. Установить ./configure && make && make install
  6. Также необходимо создать каталог с именем .tsung в root директории и конфигурационный файл tsung.xml внутри него (подробнее о нем ниже)

Вот и все установка завершена!

Автоматическая генерация сессии


Сессию можно создавать вручную, но есть более простой способ — использовать прокси tsung'а для записи ваших действий на сайте. Для этого нужно только прописать в настройках вашего браузера ip сервера где установлен tsung и порт 8090. Далее необходимо выполнить команду tsung-recorder start побродить по сайту, сэмулировать поведение обычного посетителя. Чтобы остановить запись tsung-recorder stop. После этого сгенерированная последовательность появится в ~/.tsung/tsung_recorderyyyymmdd-HH:MM.xml. Далее неоходимо просто скопировать эту сессию в основной файл tsung.xml.

Запуск


Вот наконец когда проделаны все подготовительные действия можно и запустить наш тест. Для этого необходимо ввести команду tsung start , для остановки соответственно tsung stop. Tsung будет записывать log в каталог ~/.tsung/log/yyyymmdd-HH:MM. Очень важный момент при масштабных тестах, перед запуском установить значение ulimit больше стандартного в моем случае 1024, ulimit -n 100000. Для просмотра статуса о количестве юзеров на сайте, можно использовать команду tsung status. Сгенерированный лог помещается в каталог .tsung/log/yyyymmdd-HH:MM.

Генерация отчета и диаграмм


Для генерации отчетов используется скрипт на perl идущий вместе с программой — tsung_stats.pl. Скрипт необходимо запускать из директории с логом, командой perl tsung_stats.pl. После чего сгенерируется замечательный html отчет и диаграммы.

Tsung предоставляет статистику:
  • Производительность: время ответа, время присоединения, транзакции, запросы в секунду
  • Ошибки: статистика по возвращенным ошибкам
  • Поведение сервера: График занятости CPU и памяти, сети. SNMP

Вот пример одной из диаграмм (количество юзеров на сайте, и количество сгенерированных юзеров):


Больше диаграмм на сайте разработчиков

Источники:


Руководство Tsung