Ошибка 422 при нагрузочном тестировании приложения Rails 3.1 с JMeter

У меня есть приложение Rails 3.1, которое я пытаюсь использовать для нагрузочного тестирования.
Наш сайт ориентирован на сбор информации, чтобы пользователи регистрировались, а затем проходили рабочий процесс вопросов и ответов, и после ответа на несколько вопросов они награжден некоторой полезной информацией.
Мой тест JMeter настроен на прохождение процедуры регистрации, а затем полного рабочего процесса вопросов и ответов.

Детали окружающей среды:

RedHat Enterprise 6
Rails 3.1
Ruby 1.9.2p290
DB: Postgres 9

Я провел тесты с 20 и 100 параллельными потоками и временем нарастания 1 поток в секунду, и результаты удовлетворительные. Однако, как только я увеличиваю время нарастания, так что за секунду создается несколько потоков (даже всего 2 в секунду), примерно половина вызовов регистрации завершается с ошибкой 422. Как только это произойдет, для тех же потоков рабочий процесс вопросов и ответов прерывается, потому что мы предполагаем, что есть действительный пользователь, отвечающий на вопросы.

Я пытаюсь выяснить, есть ли проблема с кодом приложения, конфигурацией сервера или настройкой JMeter.

Мы будем очень благодарны за любые мысли или предложения о том, как устранить эту неполадку.


person user967838    schedule 27.09.2011    source источник


Ответы (1)


Это может быть проблема с файлами cookie на стороне JMeter, когда неуникальные файлы cookie назначаются нескольким потокам.

http://rfc-ref.org/RFC-TEXTS/4028/chapter6.html#d4e441904

Это расширение вводит код ответа 422 (слишком малый интервал сеанса)
. Он генерируется UAS или прокси, когда запрос
содержит поле заголовка Session-Expires с длительностью ниже минимального таймера
для сервера. Ответ 422 ДОЛЖЕН содержать поле заголовка Min-SE с минимальным таймером для этого сервера.

person BlackGaff    schedule 28.09.2011