Перейти к содержимому

Фотография

Считывание запросов из файла - Jmeter не справляется


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 SmirnovD82

SmirnovD82

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Смирнов Даниил Сергеевич


Отправлено 11 февраля 2014 - 11:58

Доброго времени суток.

 

Сталкивался ли кто-либо со следующей проблемой.

 

Стоит задача нагрузить сайт из логов сервера. Сайт довольно производительный и держит до 2000 запросов в секунду. По крайней мере такая производительность была получена с помощью инструмента wcat. Хотим перепроверить на jmeter. Но выяснилось, что даже с использованием Acess Log Sampler не удается сгенерировать достаточную нагрузку на сервер. Проблема - в скорости чтения из файла, который считывается построчно. В итоге перед отправкой очередного запроса получается существенная задержка и сгенерировать нужное количество запросов не получается. Запуск сразу нескольких инстансов jmeter проблемы не решает, т.к. с определенного момента скорость чтения с диска становится препятствием на пути наращивания нагрузки.

 

Выход видится только один - считывать каким-то образом файл с запросами полностью в память и потом к нему обращаться. Можно ли это как-то сделать средствами Jmeter? Может быть, есть какие-то плагины для считывания запросов из файла помимо Acess Log Sampler?


  • 0

#2 player1

player1

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Шайдров Павел
  • Город:Лимассол


Отправлено 11 февраля 2014 - 12:15

а если поставить на генератор накрузки SSD? :)

 

Хотя, конечно, правильнее было бы проанализировать логи и выяснить соотношение типов запросов и самим генерировать запросы соответствующим образом на лету


  • 0

#3 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 11 февраля 2014 - 12:47

А путь к файлу указывается явно?

Если да, можно попробовать перенести его на RAM-диск.


  • 0

#4 SmirnovD82

SmirnovD82

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Смирнов Даниил Сергеевич


Отправлено 11 февраля 2014 - 13:36

Уже попробовал RAM disk. График идет всплесками с очень высокими показателями реквестов в секунду, затем jmeter отключается сам минут через 5 несмотря на то, что в шедулере стоит чекбокс forever.

 

Подозреваю теперь считывание данных происходит наоборот, слишком быстро.


  • 0

#5 APC

APC

    Опытный участник

  • Members
  • PipPipPipPip
  • 293 сообщений
  • ФИО:Похилько Андрей Федорович
  • Город:Москва


Отправлено 11 февраля 2014 - 16:15

Уже попробовал RAM disk. График идет всплесками с очень высокими показателями реквестов в секунду, затем jmeter отключается сам минут через 5 несмотря на то, что в шедулере стоит чекбокс forever.

 

Подозреваю теперь считывание данных происходит наоборот, слишком быстро.

 

 

Суть в том, что Access Log Sampler помимо чтения файла с диска (которое происходит достаточно быстро) делает кучу работы внутри: парсит прочитанное с диска, рожает объект-HTTPClient и т.п. И делает он это всё весьма неэффективно.

 

Решение уже предложено выше - подключите свои руки и голову и сами сделайте предварительный парсинг файла, выделив чистые URL в отдельный файл, в каждой строчке отдельный URL. Далее возьмите CSV Data Set и HTTP Request и скорость возрастет.

 

Только не перепутайте проблемы на стороне сервера с проблемами на стороне JMeter, а то вам может показаться что JMeter не справляется, а на самом деле нужно ковырять сервер. 


  • 1

#6 SmirnovD82

SmirnovD82

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Смирнов Даниил Сергеевич


Отправлено 12 февраля 2014 - 06:12

Спасибо за совет. Что касается сервера, он довольно мощный, по ресурсам справляется.


  • 0

#7 APC

APC

    Опытный участник

  • Members
  • PipPipPipPip
  • 293 сообщений
  • ФИО:Похилько Андрей Федорович
  • Город:Москва


Отправлено 12 февраля 2014 - 08:00

Спасибо за совет. Что касается сервера, он довольно мощный, по ресурсам справляется.

 

Штука в том, что изобилие ресурсов - не гарантия возможности их утилизировать. Самый распространенный пример - блокировки и неверное конфигурирование.


  • 0

#8 LOLWUT

LOLWUT

    Новый участник

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Lol Wut

Отправлено 05 марта 2014 - 19:25

Доброго времени суток.

 

Сталкивался ли кто-либо со следующей проблемой.

 

Стоит задача нагрузить сайт из логов сервера. Сайт довольно производительный и держит до 2000 запросов в секунду. По крайней мере такая производительность была получена с помощью инструмента wcat. Хотим перепроверить на jmeter. Но выяснилось, что даже с использованием Acess Log Sampler не удается сгенерировать достаточную нагрузку на сервер. Проблема - в скорости чтения из файла, который считывается построчно. В итоге перед отправкой очередного запроса получается существенная задержка и сгенерировать нужное количество запросов не получается. Запуск сразу нескольких инстансов jmeter проблемы не решает, т.к. с определенного момента скорость чтения с диска становится препятствием на пути наращивания нагрузки.

 

Выход видится только один - считывать каким-то образом файл с запросами полностью в память и потом к нему обращаться. Можно ли это как-то сделать средствами Jmeter? Может быть, есть какие-то плагины для считывания запросов из файла помимо Acess Log Sampler?

 

1. Прегенерация файла с тестовыми данными без мусора. Access Log Sampler достаточно прожорлив, я бы рекомендовал перед тестом запуска его распарсить и сгенерировать файл с чистыми данными (урлами)

2. Настройка джава параметров джметра (выделение памяти под хип, поколения, настройка GC чтобы не было stop the world и тп). Дефолтные параметры подходят только для тестирования какой-либо мелочи.

3. В случае использования распределенных нод Джметра - не забудьте сконфигурировать batch отправку резалтов сэмплера, и использовать последнюю версию джметра (в предыдущих был баг с блокировкой всего джметра на время отправки батча почти во всех его типах). В большинстве случаев StripedBatch является оптимальным.

4. Аккуратно используйте репортилки и графико-рисовалки в гуй клиенте - они так же неплохо потребляют ресурсы при длительном тесте

5. Если ваш тест пишет репорты(сэмплов) на диск - очень рекомендуется распределенное тестирование, чтобы на одном и том же компе не было конкуренции за обращение к диску.


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных