Load Testing:получение стабильных результатов
#1
Отправлено 20 декабря 2006 - 17:39
У нас разрабатывается клиент-серверное приложение. Оно сейчас находится на стадии оптимизации. Моя задача проводить нагрузочное тестирование для каждого нового билда, в который включается новый вариант оптимизации, чтобы предоставлять результаты о том, как повлияло на производительность внедрение данной оптимизации.
Провожу нагрузочное тестирование, при постоянных условиях(как мне кажется: скрипт, количество пользователей, сервер не меняются). Сравниваю время отклика.
Проблема: не могу получить стабильные данные, а именно разброс получаемых результатов для разных итераций может достигать 50%. Соответственно, использовать для сравнения такие результаты не возможно.
В чем может быть дело?
Буду признателен за любую помощь. Спасибо
#2
Отправлено 20 декабря 2006 - 19:52
При проведении тестов у вас монопольное право распоряжения сеткой, серверами приложений, серверами БД? Виртуальные пользователи запускаются автоматически по одному и тому же расписанию или ручками?
#3
Отправлено 21 декабря 2006 - 10:25
#4
Отправлено 21 декабря 2006 - 12:48
У Вас разброс результатов с каждой следующей итерацией увеличивается или он хаотичен?
Разброс хаотичен, может быть так, что два подряд прогона дают близкие результаты, а следующий отличается значительно(больше или меньше) и т.д.
#5
Отправлено 21 декабря 2006 - 13:18
При проведении тестов у вас монопольное право распоряжения сеткой, серверами приложений, серверами БД?
Сервера, на котором установлены приложение и БД, находиться в общей корпоративной сети, но в данный момент им никто кроме меня не пользуется (проверял по лог файлам).
Виртуальные пользователи запускаются автоматически по одному и тому же расписанию или ручками
Виртуальные ползователи запускаются автоматически. Я только указываю требуемое количество.
A 50% это сколько количественно?
Да действительно, 50% это около 1 сек. И в связи с этим у меня вопрос: правильно ли я делаю, усредняя суммарное по всем запросам время отклика?Т.е. что получается, скрипт содержит 150 запросов, из них 120 - это картинки, которые грузятся десятки - сотни мсек, а есть запросы к функционалу, их длительность 10-30 сек. Таким образом, усредняя по всем 150 запросам, я и получаю значение 1,5 - 3 сек.
Может быть стоит учитывать лишь значимые запросы или вообще сравнивать время отклика только тех запросов, которые обращаются к модулю приложения, оптимизация которого была проведена?
#6
Отправлено 21 декабря 2006 - 18:17
Что измерять и что с чем сравнивать зависит от поставленных перед вами задач. Но в любом случае я не вижу абсолютно никакого смысла париться из-за 1-2 секунд. Такие разбросы вполне могут объясняться тем, что траффик идет через корпоративную сеть, да и сам тул тоже ведь не идеальный и имеет какую-то погрешность измерений.Да действительно, 50% это около 1 сек. И в связи с этим у меня вопрос: правильно ли я делаю, усредняя суммарное по всем запросам время отклика?Т.е. что получается, скрипт содержит 150 запросов, из них 120 - это картинки, которые грузятся десятки - сотни мсек, а есть запросы к функционалу, их длительность 10-30 сек. Таким образом, усредняя по всем 150 запросам, я и получаю значение 1,5 - 3 сек.
Может быть стоит учитывать лишь значимые запросы или вообще сравнивать время отклика только тех запросов, которые обращаются к модулю приложения, оптимизация которого была проведена?
#7
Отправлено 22 декабря 2006 - 12:18
#8
Отправлено 25 декабря 2006 - 16:06
2. выключить на машинах все лишние сервисы и таски по расписанию (скажем, антивирусы, проверка апдейтов и т.п.)
3. если разброс все равно заметный, то можно брать среднее по нескольким измерениям.
#9
Отправлено 25 декабря 2006 - 16:15
1 секунда на 100 клиентах может вылится 10 на 1000, а может 100 или более секунд.
Т.ч. возможно париться стоит.
Тип запросов может быть разным в зависимоти от целей тестирования.
Если оптимизация направлена на обработку запросов в базе данных, то и тестовые запросы должны быть на 100% такими.
Что измерять и что с чем сравнивать зависит от поставленных перед вами задач. Но в любом случае я не вижу абсолютно никакого смысла париться из-за 1-2 секунд. Такие разбросы вполне могут объясняться тем, что траффик идет через корпоративную сеть, да и сам тул тоже ведь не идеальный и имеет какую-то погрешность измерений.Да действительно, 50% это около 1 сек. И в связи с этим у меня вопрос: правильно ли я делаю, усредняя суммарное по всем запросам время отклика?Т.е. что получается, скрипт содержит 150 запросов, из них 120 - это картинки, которые грузятся десятки - сотни мсек, а есть запросы к функционалу, их длительность 10-30 сек. Таким образом, усредняя по всем 150 запросам, я и получаю значение 1,5 - 3 сек.
Может быть стоит учитывать лишь значимые запросы или вообще сравнивать время отклика только тех запросов, которые обращаются к модулю приложения, оптимизация которого была проведена?
#10
Отправлено 25 декабря 2006 - 17:52
Это все ваши домыслы. Нигде в первоначальном посте нет ни единого намека на то, что запускаемое количество пользователей меньше, чем требуемое.Есть такое понятие - масштабируемость.
1 секунда на 100 клиентах может вылится 10 на 1000, а может 100 или более секунд.
Т.ч. возможно париться стоит.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных