Tsung

Tsung
Tsung
Тип

Средство для нагрузочного тестирования

Разработчик

Nicolas Niclausse

Написана на

Erlang

Интерфейс

командная строка

Операционная система

Linux, Unix

Последняя версия

1.4.1 (Sep 2011, 08)

Лицензия

GPLv2

Сайт

http://www.process-one.net/en/tsung

Tsung (изначально известный как IDX-Tsunami, сейчас Tsunami next generation) — это распределенная система нагрузочного тестирования, написанная на Erlang’е. Разработку Tsung начал Nicolas Niclausse в 2001 году изначально это была распределенная система для нагрузочного тестирования jabber’а для внутренних нужд компании IDEALX, сейчас OpenTrust. Через несколько месяцев проект развился в опенсорсный мультипротокольный инструмент для нагрузочного тестирования. Поддержка HTTP была добавлена в 2003 году.

Tsung может использоваться для тестирования разных протоколов HTTP (в том числе SOAP), WebDAV, Jabber, LDAP, а также PostgreSQL и MySQL, а также дает возможность эмулировать кластер из клиентских машин.

Содержание

Возможности в рамках HTTP

В рамках HTTP протокола Tsung позволяет имитировать разные методы (GET, GET if-modified-since, POST, PUT, DELETE, HEAD), управлять куками, как автоматически так и вручную, добавлять заголовки (в том числе SOAP), производить базовую аутентификацию, имитировать разные юзерагенты, записывать действия юзера с помощью рекордера.

Возможности в рамках Jabber/XMPP

В рамках протокола Jabber/XMPP это сообщения о аутентификации, регистрации присутствии, сообщения в чате, работа со списком пользователей, румами, а также настройка синхронизации пользователей.

Структура

Файл конфигурации Tsung’а это XML файл. Основной тег <tsung>, в нём заключается вся конфигурация и он имеет два свойства: loglevel и dumptraffic, loglevel как и везде регулирует подробность лога, dumtraffic используется для отладки. При параметре dumptraffic=true создается файл лога dump.log, в который подробно записывается каждый ответ от сервера. В последней версии Tsung, есть варианты dumptrafic=light — первые 44 байта ответа сервера и dumptrafic=protocol — только следующие данные date;pid;id;http method;host;URL;HTTP status;size;match;error.

<?xml version="1.0"?>
<tsung loglevel="info" dumptraffic="false">
     ...
</tsung>

Клиенты и серверы

Можно использовать несколько виртуальных IP, это крайне полезно в случае, если load-balancer на сервере использует IP клиента для распределения траффика между кластером серверов.

<clients>
     <client host="test1" weight="1" maxusers="500">
          <ip value="10.0.2.3"/>
          <ip value="10.0.2.4"/>
     </client>
     <client host="test2" weight="3" maxusers="250" cpu="2">
          <ip value="10.1.2.5"/>
     </client>
</clients>
<server host="10.2.2.10" port="8081" type="tcp"/>

Даже если Erlang VM теперь способна справляться с несколькими ядрами(erlang SMP), тесты показывают, что для клиентов Tsung более эффективно использовать одну VM на ядро (с отключенным SMP). Однако, параметр cpu должен быть равным количеству ядер ваших нод. Если вы предпочитаете использовать erlang SMP, добавьте опцию -s при старте Tsung (и не задавайте cpu в файле конфигурации).

В данном примере, вторая машина используется в кластере Tsung с большим «весом» и двумя ядрами. По умолчанию, нагрузка равномерно распределена на все ядра (одно ядро на клиент по умолчанию). Параметр weight(integer) может быть использован для настройки приоритетности машины клиента. В частности, если у одного клиента вес 1, а у другого 2, второй запустит в два раза больше юзеров, чем первый (пропорции будут 1/3 и 2/3). В приведенном примере, где у второго клиента cpu=2 и weight=3, вес равен 1,5 для каждого ядра.

Мониторинг

Tsung поддерживает несколько типов мониторинга сервера. Это родной агент мониторинга Erlang, всем известный Munin и SNMP, агент должен быть установлен на стороне сервера. Если нагрузка делается на кластер серверов, можно применять разные агенты для разных серверов.

<monitoring>
     <monitor host="10.1.1.94" type="erlang"/>
     <monitor host="10.1.1.94" type="munin">
          <munin port="8081"/>
     </monitor>
     <monitor host="10.1.1.94" type="snmp">
          <snmp version="v2" community="rwCommunity" port="11161"/>
     </monitor>
</monitoring>

Фазы нагрузки

Нагрузку можно разбить на несколько фаз, например плавно повышая нагрузку. В настройках можно задать длительность каждой фазы и очередность выполнения фаз. В каждой фазе можно установить количество конкуретных пользователей 2-мя способами: задать количество пользователей за промежуток времени, например 100п/с, либо сказать с какой частотой создавать пользователей, например 1 пользователь каждые 0.01с. В стабильную нагрузку можно вставить специфическую сессию в оп-ределенное время, для имитации какой либо проверки или запуска специфического сервиса.

<load>
     <arrivalphase phase="1" duration="10" unit="minute">
<!-- Фаза разогрева -->
          <users interarrival="0.1" unit="second"> </users>
     </arrivalphase>
     <arrivalphase phase="2" duration="60" unit="minute">
<!-- Фаза нагрузки -->
          <users arrivalrate="1000" unit="second"> </users>
     </arrivalphase>
<!-- Специальные сессии -->
     <user session="addManyProducts" start_time="20" unit="minute"/>
     <user session="checkOrders" start_time="25" unit="minute"/>
</load>

User agents

Пример настройки для имитации разных браузеров, устанавливается процентное соотношение между юзерагентами, этот процент определяет вероятность присвоения сессии юзера, одного из указанных агентов, по умолчанию присваивается — tsung

<option type="ts_http" name="user_agent">
     <user_agent probability="60">
           Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0
     </user_agent>
     <user_agent probability="20">
          Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.0.4506.2152; 
          .NET CLR 3.5.30729; .NET CLR 3.0.04506.30)
     </user_agent>
     <user_agent probability="20">
          Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21
     </user_agent>
</option>

Установка

  1. apt-get install gnuplot-nox libtemplate-perl libhtml-template-perl libhtml-template-expr-perl
  2. Скачать последнюю версию tsung-1.4.1.tar.gz.
  3. Распаковать tar -zxvf tsung-1.4.1 .tar.gz
  4. Установить ./configure && make && make install
  5. Создать каталог с именем .tsung в root-директории и конфигурационный файл tsung.xml в ней

Примечания

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Tsung" в других словарях:

  • Tsung — (formerly known as idx Tsunami) is a stress testing tool written in the Erlang language and distributed under the GPL license. It can currently stress test HTTP, PostgreSQL , SOAP and Jabber/XMPP servers. Tsung can simulate hundreds of… …   Wikipedia

  • Tsung tu — A viceroy or governor general, the highest provincial official in China, with civil and military authority over one or more provinces. [Webster 1913 Suppl.] …   The Collaborative International Dictionary of English

  • tsung — (as used in expressions) Ch eng tsung Hui tsung T ai tsung Hsüan tsung * * * …   Universalium

  • tsung — (as used in expressions) Ch eng tsung Hui tsung T ai tsung Hsüan tsung …   Enciclopedia Universal

  • Tsung-dao lee — Tsung Dao Lee (李政道, né le 24 novembre 1926) est un physicien américain, d origine chinoise, qui a travaillé sur la physique nucléaire, en étudiant notamment les particules à haute énergie, et à la physique statistique. En 1957, à 31 ans, il… …   Wikipédia en Français

  • Tsung Dao Lee — Tsung Dao Lee (李政道, né le 24 novembre 1926) est un physicien américain, d origine chinoise, qui a travaillé sur la physique nucléaire, en étudiant notamment les particules à haute énergie, et à la physique statistique. En 1957, à 31 ans, il… …   Wikipédia en Français

  • Tsung-Dao Lee — Tsung Dao Lee …   Wikipedia Español

  • Tsung-Dao Lee — (李政道), né le 24 novembre 1926 à Shanghai, est un physicien américano chinois, qui a travaillé sur la physique nucléaire, en étudiant notamment les particules à haute énergie, et à la physique statistique. Chen Ning Yang et lui sont colauréats du …   Wikipédia en Français

  • Tsung-Dao Lee — 1957 T.D. Lee auf der Quark Matter Konferenz 2006 in Shanghai Tsung Dao Lee ( …   Deutsch Wikipedia

  • Tsung-li Yamen — Tsung li Ya men [Written also {Tsung li Yamen} or {Tsungli Yamen}.] [Chin.] The board or department of foreign affairs in the Chinese government. See {Yamen}. [Webster 1913 Suppl.] …   The Collaborative International Dictionary of English


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»