Имитация высоких задержек / прерывистых сетевых подключений

Я выполняю нагрузочное тестирование сетевого приложения с помощью Grinder (на ПК с Windows) и хочу смоделировать несовершенную сеть. условия, чтобы увидеть, как это влияет на загрузку приложения, в частности, я хотел бы увидеть эффект:

  • Переменная сетевая задержка, поэтому не только разные клиенты имеют разную задержку, но и задержка может различаться во время теста для одного клиента.
  • Разорванные сетевые подключения. Я хочу смоделировать, что происходит, когда сетевое подключение резко/случайно обрывается.

Какой самый простой способ сделать это?


person Justin    schedule 05.08.2010    source источник


Ответы (4)


  1. Установите Linux в качестве маршрутизатора по умолчанию для этой машины.
  2. Установите «netem» на Linux: http://www.linuxfoundation.org/collaborate/workgroups/networking/netem
person FractalSpace    schedule 05.07.2011

Другие варианты:

  • WanEM (OpenSource, синхронизация часов может быть проблемой при установке виртуальной машины по умолчанию, которая дает противоречивые результаты. Лучше всего использовать wen, установленную на физическом оборудовании, а не на виртуальной машине) Место загрузки WanEm
  • Shunra (коммерческий, я предпочитаю шасси) Shunra Products
  • Anue (коммерческий, теперь Ixia) Anue на веб-сайте Ixia
person James Pulley    schedule 30.08.2012

Тот факт, что Grinder позволяет вам погрузиться в свой Jython-скрипт, обладает большими возможностями для настройки способа, которым вы хотите управлять поведением «агента».
Например, если вы хотите имитировать брошенный сетевых подключений, скажем, у вашего агента 100 запусков. вы можете сгенерировать массив случайных чисел [между 0-99], и для прогонов, соответствующих любому из случайных чисел, вы можете дать указание потоку прерваться.

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

Надеюсь это поможет.

person anirvan    schedule 16.11.2010

Вас также может заинтересовать функция регулирования пропускной способности гриндера, которая ограничивает на произвольных уровнях скорость, с которой потоки вашего агента могут отправлять/получать данные по сети. Ваше HTTP-соединение имеет метод setBandwidthLimit(), который позволяет вам это сделать.

person Travis Bear    schedule 03.07.2011