我需要重现客户端-服务器异步通信的问题(一堆 JavaScript AJAX 与 OData api),这似乎是由服务器和/或网络连接速度变慢时计算中的某些竞争条件引起的。
现在,我拥有的测试环境是一台本地 Hyper-V 机器,所以它非常闪亮且快速……我需要它放慢速度来验证它。
是否有任何已知的方法(基本上)使 LAN Hyper-V 机器的行为类似于通过爬行互联网连接到达的远程服务器?
我需要重现客户端-服务器异步通信的问题(一堆 JavaScript AJAX 与 OData api),这似乎是由服务器和/或网络连接速度变慢时计算中的某些竞争条件引起的。
现在,我拥有的测试环境是一台本地 Hyper-V 机器,所以它非常闪亮且快速……我需要它放慢速度来验证它。
是否有任何已知的方法(基本上)使 LAN Hyper-V 机器的行为类似于通过爬行互联网连接到达的远程服务器?
我发现模拟糟糕的 Internet 连接的最佳方法是在服务器和我的测试 PC 之间放置一个 pfsense 路由器并设置限制器功能。 https://doc.pfsense.org/index.php/Traffic_Shaping_Guide#Limiter
这可用于模拟慢速网络、延迟甚至引入数据包丢失,以查看您的应用程序如何对不利的网络条件做出反应。
pfsense 可以在 hyperv 虚拟机中运行。因此,您可以对其进行设置,然后将网络服务器网络设置更改为 pfsense 后面。
如果你不喜欢 pfsense,你可以使用任何支持 Dummynet 的 BSD 发行版。http://cs.baylor.edu/~donahoo/tools/dummy/tutorial.htm
您不能减慢来宾 VM 上的网络速度,但可以将其放在路由器后面,该路由器将负责减慢连接速度;该路由器可以是另一个具有两个网络接口的 WM,运行一个能够根据您的需要自定义网络带宽和延迟的工具。
为此有多种工具,其中最通用和最容易设置和使用的工具之一是WANEM。
不是开箱即用。您也不需要机器变慢 - 您想要模拟 LAN 连接,即低带宽(可以在 Hyper-V 2012 R2 的某个方面完成)和延迟。延迟真的很难做到——我知道没有软件这样做——因为这意味着缓冲所有数据包。
LAN badiwdth 很容易 - 通过具有 QOS 的功能强大的路由器 (Mikrotik) 运行它,并使那里的带宽非常非常糟糕。