вторник, 2 октября 2012 г.

Яндекс.танк


Яндекс.танк -  это внутреняя разработка яндекса, которая наконец-то вышла в свет. 
Это консольный инструмент, пока не имеющий графического интерфейса, но дающий довольно полную картину в этой самой консоли.
Сам проект и документация находится на github'е: https://github.com/yandex-load/yandex-tank
В кратце возможности:
Можно нагружать одну страницу или сразу список урлов (которые будут запрашиваться примерно в одинаковых соотношениях).
А можно самому составить список запросов со своими заголовками. Например, можно реализовать нагрузку от запросов от анонимных пользователей и залогиненных. Через скрипт (php, python, bash, etc) залогиниться на сайте и получить нужные куки. Сгенерировать в нужном формате данные для танка и запустить тест.
Танк позволяет создать 3 вида нагрузки:
  • Постоянная - указывается количество запросов и время
  • Линейный рост - указывается начальное и конечное значение и время
  • Рост шагами - указывается начальное и конечное значение, шаг увеличения нагрузки и время.
Причём эти виды нагрузки можно комбинировать в одном тесте.
Особенно хочется отметить простоту и понятность синтаксиса.
  • Подогреваем кэш load = const(1, 10s) 
  • Линейно увеличиваем нагрузку с одного запроса в секунду до 10 в течение 2 минут load = line(1, 10, 2m)
  • Начинаем нагружать 10 запросами в секунду в течение 1 минуты, потом увеличиваем на 5 запросов и так до 40. Т.е. на каждый шаг будет затрачено по минут load = line(10, 40, 5, 1m) 
  • Указываем нагружаемых хост, только ip (!) address = 192.168.100.254:80 
  • Посылаемые заголовки header = [Host: test.server] header = [Connection: close] header_http = 1.1 
  • Нагружаемые страницы uri = / uri = /another_page/
Вот что случается, когда сервер не справляется:

Комментариев нет:

Отправить комментарий