Мы использовали BlazeMeter, чтобы оценить способность нашего сайта справляться с нагрузкой.
Я создал простой скрипт, который входит в систему (используя специальную страницу, которая гарантирует, что каждый пользователь нагрузочного теста имеет другую учетную запись), посещает несколько страниц по общему маршруту и заканчивается созданием и загрузкой отчета в формате PDF. Эти отчеты создаются "на лету", и загрузка может занять некоторое время.
Результат нагрузочного теста с 1000 одновременных пользователей (достигнутый в 10:13 на следующем графике) выглядит следующим образом:
Как мы и ожидали, время отклика увеличивалось по мере увеличения числа пользователей, и соответственно увеличивалась задержка. После 10:13 по сценарию постоянно проходило 1000 пользователей.
Что нас смущает, так это всплеск задержки (и, соответственно, времени отклика) около 10:25.
Мы запускали этот тест несколько раз, и все графики выглядели примерно так. Через несколько минут при 1000 одновременных пользователей наступает период более высокой задержки и времени отклика, после чего задержка падает, как камень, и время отклика стабилизируется.
Мы обсуждали это с нашей службой хостинга (которая обычно поддерживает использование 4 МБ, но «разгоняет» нас до 100 МБ во время интенсивного использования), и они не могут это объяснить. Наша первоначальная мысль заключалась в том, что через несколько минут при более высокой нагрузке служба хостинга автоматически сделала что-то со своей сетью, чтобы получить более высокий приоритет или более высокую пропускную способность, что привело к сбоям на несколько минут, а затем к повышению производительности.
Однако наш хозяин утверждает, что это не так. Они говорят, что у нас всегда скорость 100 МБ, но превышение определенного порога - это просто «событие биллинга», а не то, что требует от их систем каких-либо действий.
Что может вызвать такую производительность?
Задержка - это задержка, с которой ваш запрос достигает сервера.
Время ответа, необходимое для получения ответа от сервера, складывается из времени ответа + задержки. Высокая задержка и достаточно низкое время отклика указывают на то, что с тестируемым приложением все в порядке, но вы достигли некоторых ограничений среды.
Я бы предложил использовать PerfMon плагин для мониторинга состояния сервера по различным показателям, и если все в порядке, вы можете использовать что-то вроде Иперф чтобы узнать, способна ли ваша сетевая карта выдержать такую нагрузку.
Eсть руководство по интерпретации отчетов о нагрузке, которые могут быть связаны с вашим случаем.