Как найти среднее число одновременных пользователей для IIS для имитации во время теста нагрузки / производительности? - PullRequest
6 голосов
/ 07 февраля 2012

Я использую JMeter для нагрузочного тестирования. Я пытаюсь найти максимальное количество одновременных потоков (пользователей), которое может обрабатывать наш веб-сервер, просто увеличив число потоков в моем распределенном тестовом примере JMeter и запустив тест.

Затем - меня поразило, что хотя МАКС-число может быть полезным, РЕАЛЬНОЕ количество пользователей, которое мой сайт фактически обрабатывает в среднем, - это число, которое мне нужно, чтобы сделать тест плодотворным.

Вот несколько сведений о нашей настройке:

  • Это смешанный сайт .NET / Classic ASP. После входа в систему для обоих пользователей создается сеанс браузера (с таймаутом).
  • Время каждого сеанса истекает через 60 минут.

Есть ли способ использовать эту информацию, журналы IIS, счетчики производительности и / или некоторые расчеты, которые помогут мне определить среднее число одновременных пользователей, с которыми мы работаем на нашем производственном сайте?

Ответы [ 3 ]

4 голосов
/ 22 февраля 2012

Вы можете использовать logparser с функцией QUANTIZE для определения пикового числа запросов за подходящий интервал.

Для 10-секундного окна это будет что-то вроде:

logparser "select quantize(to_localtime(to_timestamp(date,time)), 10) as Qnt,
    count(*) as Hits from yourLogFile.log group by Qnt order by Hits desc"

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

Наилучший способ точного подсчета - это, вероятно, счетчики производительности, но яне уверен, что какой-либо из стандартных работает так, как вы хотели бы - вам, вероятно, потребуется создать собственный счетчик.

3 голосов
/ 09 февраля 2012

Здесь я вижу несколько вариантов.

  1. Используйте системный монитор, чтобы получать текущие цифры или регистрировать его весь день и получить среднее значение.ASP.NET имеет счетчик текущих запросов .Согласно этой странице Классический ASP также имеет ток запросов, но я никогда не использовал его сам.

  2. Запуск журналов IIS через Анализатор журнала , чтобы узнать общее количество запросов и продолжительность каждого из них.Я думаю, что если вы знаете, сколько запросов приходит в час и сколько времени занимает каждый, вы можете получить среднее число одновременно запущенных запросов.

Также имейте в видучто одновременные пользователи не совсем совпадают с параллельными потоками на сервере.Во-первых, несколько потоков будут активны для каждого пользователя, пока загружается контент, такой как изображения.И после этого пользователь будет на странице в течение нескольких минут, пока сервер не используется.

2 голосов
/ 22 февраля 2012

Я предлагаю сначала определить условия остановки, например

  • Максимальное использование ЦП
  • Максимальное использование памяти
  • Максимальное время ответа на запросы
  • Другие ключевые параметры, которые вам нравятся

Выбор параметров действительно субъективен, и я лично не могу предоставить большой опыт по этому вопросу.

Во-вторых, вы можете увидеть, являются ли счетчики производительности илиЖурналы IIS могут сопоставляться с параметрами.Затем вы устанавливаете правильные сопоставления.

В-третьих, вы можете начать тестирование, имитируя N пользователей (потоков) и посмотрев, достигаются ли условия остановки.Если не ударил, вы можете перейти на большее число.Если вы нажмете, вы можете использовать меньшее число.Рекурсивно вы найдете приблизительное число.

Однако это никогда не означает, что ваш веб-сайт в реальном мире может принять столько пользователей.Пока никакое моделирование не может охватить все граничные случаи.

...