симулятор пропускной способности и трафика для веб-приложений? - PullRequest
13 голосов
/ 01 октября 2008

Можете ли вы предложить, как создать тестовую среду для имитации различных типов пропускной способности и трафика в веб-приложении?

Или, может быть, программа с открытым исходным кодом, которая делает это против localhost?

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

Ответы [ 13 ]

7 голосов
/ 01 октября 2008

если вы используете apache, вы можете взглянуть на apache ab

4 голосов
/ 30 декабря 2008

Существует два подхода к формированию сетевого трафика для имитации сетевого соединения:

  1. Запустите некоторое программное обеспечение на клиенте или сервере, который находится где-то в сетевом стеке и формирует трафик между приложением и сетевым интерфейсом
  2. Запустите программу формирования трафика на выделенной машине с 2 сетевыми интерфейсами, через которые маршрутизируется ваш трафик

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

Некоторые другие функции, о которых вы, возможно, захотите подумать, - это то, какие параметры формирования можно моделировать. Большинство из них задерживают и теряют пакеты, некоторые также ограничивают джиттер и полосу пропускания. Некоторые решения могут выборочно фильтровать трафик (например, по номеру порта, TCP или UDP и т. Д.).

Вот список некоторых систем, которые я нашел:

Открытый исходный код или бесплатное программное обеспечение

DummyNet является BSD с открытым исходным кодом на основе Unix для выделенных устройств. Не ясно, активно ли поддерживается программное обеспечение

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

Коммерческая

Соответствующие Technoligies продают специализированные аппаратные решения для моделирования WAN-соединений с веб-интерфейсом для настройки параметров и сбора измерений трафика

East Coast DataCom продажа аппаратных специализированных симуляторов для симуляции маршрутизаторов и модемов

Itrinegy предлагает как специализированные решения для устройств, так и решения для работы на клиентах или серверах.

Network FX предлагает несколько специализированных устройств для моделирования сетевых нарушений между клиентом и сервером

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

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

3 голосов
/ 01 октября 2008

Самое близкое, что я могу придумать, это сделать что-то похожее с VEDekstop от Shunra ..

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

Shunra VE Desktop Standard - клиентское программное решение на базе Windows, имитирующее соединение глобальной сети, позволяющее тестировать приложения в различных текущих и потенциальных сетевых условиях - прямо с рабочего стола. 1011 *

1 голос
/ 29 июля 2010

Я не использовал его годами (отсутствие необходимости, не потому, что я нашел что-то еще), но xat webspeed было бы первым, на что я бы указывал

1 голос
/ 05 марта 2009

Web Stress Tool (WAST) от Microsoft - это то, что вам нужно.

http://www.microsoft.com/downloads/details.aspx?familyid=e2c0585a-062a-439e-a67d-75a89aa36495&displaylang=en

1 голос
/ 30 декабря 2008

Как уже упоминали другие люди, Abache Apache (поставляется с Apache, так что, вероятно, он у вас уже есть) хорош.

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

Лично мне больше всего нравятся AB и JMeter.

1 голос
/ 25 октября 2008

Если вы используете Linux-сервер в качестве вашего сервера, Linux-бокс в качестве вашего клиента или у вас есть возможность установить (возможно, виртуальную машину) Linux-маршрутизатор между вашим клиентом и сервером, вы можете использовать NetEm.

NetEm - это дисциплина Linux TC (Traffic Control), которая может задерживать (то есть добавлять задержку) пакеты, покидающие хост. Хотя сложно настроить хитрые правила (например, добавить задержку для одного трафика, а не для других), легко добавить простую правило типа «задержать все, что покидает интерфейс на 50 мс», и некоторые рецепты предоставлены.

Вставив виртуальную машину Linux между вашим клиентом и сервером, вы можете имитировать столько задержки, сколько пожелаете. И вы можете включать и выключать его динамически. В Linux есть другие дисциплины TC, которые можно комбинировать с NetEm для ограничения пропускной способности (но сценарий для настройки этого может быть несколько сложным). NetEm также может случайным образом отбрасывать пакеты.

Я использую это, и это работает удовольствие:)

1 голос
/ 01 октября 2008

Я недавно написал php-скрипт, который использовал CURL для запуска последовательности запросов страниц к моему серверу, что представляло собой типичный сценарий использования. У меня было выводить время, необходимое серверу для ответа на каждый запрос. Затем у меня был другой сценарий, который порождал кучу этих сценариев тестового случая одновременно в течение длительного периода времени и сопоставил результаты в файл, который я затем мог просмотреть в электронной таблице, чтобы увидеть среднее время. Таким образом, я мог смоделировать количество пользователей, посещающих сайт, которые я хотел. Ограничения заключаются в том, что вам необходимо запустить тестовый скрипт на другом сервере, чем веб-сервер, и что клиентский компьютер может стать слишком загруженным, чтобы давать значимые результаты после определенного момента. С тех пор я ушел с работы, иначе я вставил бы сценарии сюда.

0 голосов
/ 03 мая 2011

Не забывайте про Wanulator (http://www.wanulator.de/). Название Wanulator происходит от «WAN» и «simulator». Это в значительной степени описывает то, что делает программное обеспечение: оно имитирует различные условия Интернета, такие как задержка или потеря пакетов. Кроме того, оно имитирует скорости линии доступа пользователя, например модем, ISDN или ADSL. В настоящее время Wanulator поставляется в виде загрузочного компакт-диска Linux на основе SLAX. Это даст вам полный опыт из коробки. Вы можете мгновенно превратить любой компьютер в тестовую систему, просто загрузив компакт-диск Wanulator. В пакет уже включены полезные клиентские программные продукты, такие как веб-браузер и сетевой сниффер (Wireshark). Тем не менее, если ПК имеет 2 сетевых интерфейса, система может работать как промежуточная система между вашим сервером и вашим клиентом - как коммутатор - без каких-либо проблем с настройкой.

0 голосов
/ 05 декабря 2008

Если вы заинтересованы в проведении ваших тестов из браузера, есть также действительно отличный плагин для Firefox .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...