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

Фотография

Нагрузочное тестирование многокомпонентной системы


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

#1 Vasiliy

Vasiliy

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 959 сообщений
  • ФИО:Касимов Василий
  • Город:Москва

Отправлено 17 июля 2012 - 13:37

Коллеги, у меня вопрос по тестированию производительности. Профессионально до этого никогда не сталкивался, поэтому прощу помощи.

Есть система, которая принимает телефонные звонки и позволяет операторам их обрабатывать.
Упрощенно система выглядит так: есть сервис телекоммуникаций с платой для приема звонков. Это отдельный сервер.
Далее есть сервер, на котором крутится служба для работы операторов. Это так же отдельная железяка.
И еще есть база данных.
Общение между всеми службами внутри системы сделано с помощью очереди MSMQ. То есть входящие звонки ставятся в очередь и операторы их берут себе по мере освобождения.
Оператор заполняет карточку звонка и тем самым дает еще нагрузку на БД.

Задача - узнать сколько рабочих мест операторов выдержит данный сервер.
Плату для приема звонков считаем заведомо стабильной и нагрузку договорились подавать в обход нее.
Есть утилита, которая позволяет эмулировать звонки на плату и думать, что идет сигнал с телефонной линии.
Вопрос у меня такой. Обычно, например web-сервер, нагружают с одной стороны смотрят как он работает под нагрузкой.
В данной же ситуации нагрузка идет звонками, а операторы их обрабатывают постепенно. То есть работа операторов тоже идет как переменная нагрузка на сервер и БД.
Как быть в данном случае?
Я пока нашел как нагружать входящими телефонными звонками, а что делать с работой операторов - не знаю.
  • 0

#2 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 17 июля 2012 - 15:53

Коллеги, у меня вопрос по тестированию производительности. Профессионально до этого никогда не сталкивался, поэтому прощу помощи.

Есть система, которая принимает телефонные звонки и позволяет операторам их обрабатывать.
Упрощенно система выглядит так: есть сервис телекоммуникаций с платой для приема звонков. Это отдельный сервер.
Далее есть сервер, на котором крутится служба для работы операторов. Это так же отдельная железяка.
И еще есть база данных.
Общение между всеми службами внутри системы сделано с помощью очереди MSMQ. То есть входящие звонки ставятся в очередь и операторы их берут себе по мере освобождения.
Оператор заполняет карточку звонка и тем самым дает еще нагрузку на БД.

Задача - узнать сколько рабочих мест операторов выдержит данный сервер.
Плату для приема звонков считаем заведомо стабильной и нагрузку договорились подавать в обход нее.
Есть утилита, которая позволяет эмулировать звонки на плату и думать, что идет сигнал с телефонной линии.
Вопрос у меня такой. Обычно, например web-сервер, нагружают с одной стороны смотрят как он работает под нагрузкой.
В данной же ситуации нагрузка идет звонками, а операторы их обрабатывают постепенно. То есть работа операторов тоже идет как переменная нагрузка на сервер и БД.
Как быть в данном случае?
Я пока нашел как нагружать входящими телефонными звонками, а что делать с работой операторов - не знаю.


На мой взгляд в первую очередь здесь необходимо ответить на вопрос "Что значит узнать, сколько рабочих мест операторов выдержит данный сервер". Не указано при этом останется трафик таким же как сейчас или количество операторов будет увеличиваться пропорционально трафику?

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

Также второй фактор - это количество самих звонков, которое вероятнее всего больше N (т.к., очередь звонков имеется).

Таким образом вы можете выстроить модели нагрузки по принципу:

Имеется три (можно меньше, можно больше) возможных трафика входящих звонков: трафик1, трафик2, трафик3 (в количестве звонков в единицу времени). При этом независимо от трафика ваши операторы обрабатывают звонки с одинаковой скоростью.

Для каждого трафика путем увеличения количества операторов (виртуальных пользователей) вы можете и определить максимально возможное количество.

Т.е. у вас в данном примере будут три модели нагрузки с изменяющимся количеством виртуальных пользователей.

Задача эмулирования трафика звонков стоит немного отдельно и решается запуском соответствующей утилиты, например, перед началом теста.

Насчет того, как эмулировать работу операторов - это уже вопрос технический. ответ зависит от того, что за приложение используют операторы (web, desktop? Если desktop, то какая архитектура, какие технологии. На основании этой информации google в помощь в поиске подходящих инструментов).
  • 0

#3 Vasiliy

Vasiliy

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 959 сообщений
  • ФИО:Касимов Василий
  • Город:Москва

Отправлено 23 июля 2012 - 09:27

На мой взгляд в первую очередь здесь необходимо ответить на вопрос "Что значит узнать, сколько рабочих мест операторов выдержит данный сервер". Не указано при этом останется трафик таким же как сейчас или количество операторов будет увеличиваться пропорционально трафику?

Спасибо за мысль. Занялся выяснением вопроса сколько звонков приходит в среднем за период времени.
Для меня этот вопрос звучит так - насколько выдержит железо?


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

Также второй фактор - это количество самих звонков, которое вероятнее всего больше N (т.к., очередь звонков имеется).

Таким образом вы можете выстроить модели нагрузки по принципу:
...

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

Задача эмулирования трафика звонков стоит немного отдельно и решается запуском соответствующей утилиты, например, перед началом теста.

Насчет того, как эмулировать работу операторов - это уже вопрос технический. ответ зависит от того, что за приложение используют операторы (web, desktop? Если desktop, то какая архитектура, какие технологии. На основании этой информации google в помощь в поиске подходящих инструментов).

Desktop - сейчас буду изучать, чем до нее можно достучаться.
С утилитой звонков тоже не просто - она графическая. Надо будет что-нибудь прикрутить для запуска.
  • 0


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

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