Мне нужно воспроизвести проблему с асинхронной связью клиент-сервер (связка JavaScript AJAX против OData api), по-видимому, вызванную некоторым состоянием гонки в вычислениях, когда сервер и / или сетевое соединение замедляются.
Теперь тестовая среда, которая у меня есть, - это локальная машина Hyper-V, так что все блестящее и быстрое ... Мне нужно, чтобы помедленнее чтобы проверить это.
Есть ли какой-либо известный способ (в основном) заставить машину LAN Hyper-V вести себя как удаленный сервер, доступный через сканирование Интернет-соединения?
Лучший метод, который я нашел для имитации дрянного интернет-соединения, - это установить маршрутизатор pfsense между сервером и моим тестовым ПК и настроить функции Limiter. https://doc.pfsense.org/index.php/Traffic_Shaping_Guide#Limiter
Это можно использовать для имитации медленной сети, задержки или даже потери пакетов, чтобы увидеть, как ваши приложения реагируют на неблагоприятные условия сети.
pfsense может работать внутри виртуальной машины Hyperv. Таким образом, вы можете настроить его, а затем изменить сетевые настройки веб-сервера, чтобы они находились за pfsense.
Если вам не нравится pfsense, вы можете использовать любой дистрибутив BSD, поддерживающий Dummynet. http://cs.baylor.edu/~donahoo/tools/dummy/tutorial.htm
Вы не можете замедлить работу сети на гостевой виртуальной машине, но можете разместить ее за маршрутизатором, который позаботится о замедлении соединения; этот маршрутизатор может быть другим WM с двумя сетевыми интерфейсами, на котором запущен инструмент, способный настраивать пропускную способность сети и время задержки в соответствии с вашими потребностями.
Для этого существуют различные инструменты, одним из самых универсальных и простых в настройке и использовании является WANEM.
Не из коробки. Вам также не нужно, чтобы машина была медленнее - вы хотите имитировать подключение к локальной сети, то есть низкую пропускную способность (что может быть сделано в Hyper-V 2012 R2 для определенного аспекта) и задержку. Задержку действительно сложно сделать - я не знаю ни одного программного обеспечения, выполняющего это - потому что это означало бы буферизацию всех пакетов.
LAN badiwdth прост - запустите все это через соответствующий маршрутизатор (Mikrotik) с QOS и сделайте там действительно очень плохую полосу пропускания.