Пропускной способности и симулятора трафика для веб-приложений?

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

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

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

Ответы

Ответ 1

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

Ответ 2

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

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

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

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

Вот список некоторых из найденных систем:

Open Source или Freeware

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

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

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

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

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

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

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

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

Shunra Software предлагает целый ряд продуктов - от моделирования и тестирования высокопроизводительных глобальных сетей предприятия до простого резидентного эмулятора.

Ответ 3

Ближайший, о котором я могу думать, делает что-то подобное с VEDekstop из Shunra..

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

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

Ответ 4

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

Ответ 5

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

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

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

Я использую его, и он работает:)

Ответ 6

Как говорили другие люди, Apache ab (поставляется с Apache, поэтому вы, вероятно, уже его уже знаете).

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

  • HP LoadRunner Apache
  • Джакарта JMeter
  • Tsung (если вы хотите включить свой erlang)

Мне лично нравятся ab и JMeter.

Ответ 8

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

Ответ 9

Мы используем Loadrunner для создания полосы пропускания и моделирования трафика в нашем приложении. Loadrunner может запускать агенты на разных машинах, и вы можете имитировать одну машину как работу на модеме модема v/s другой на DSL v/s другой в кабельном интернет-соединении. Мы также используем Loadrunner для имитации различных условий трафика от 10 пользователей до 500 пользователей. Мы также можем вставить время мысли в script и имитировать реального пользователя, выполняющего HTTP-запрос. Самое приятное то, что он поставляется с студией записи, где он будет подключаться к Internet Explorer, и вы можете записать весь сценарий /Usecase, который может быть таким же простым, как попадание одной страницы на полномасштабную страницу 50-60 script или более.

Ответ 10

Я нашел эту небольшую программу java, которая отлично работает: sloppy

пока не является профессиональным решением, но он работает для простых тестов, я предполагаю, что он использует потоки java и буферы для замедления соединения.

Ответ 11

Вы посмотрели на Цунга? Это отличная утилита для просмотра, если ваш сайт будет масштабироваться в случае атаки, я имею в виду огромную популярность. Мы используем его для нашего веб-интерфейса и наших внутренних систем.

Ответ 13

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