Performance 模拟慢速Internet连接

Performance 模拟慢速Internet连接,performance,networking,Performance,Networking,我知道这是个奇怪的问题。因为我通常是基于“假设”开发应用程序的,即所有用户的互联网连接都很慢。但是,有没有人认为有一种方法可以通过编程模拟缓慢的internet连接,这样我就可以“看到”应用程序在各种“连接速度”下的性能 我不担心使用哪种语言。我不是在寻找代码示例或任何东西,只是对其背后的逻辑感兴趣。如果您运行的是windows,这是一个很棒的工具。它有一个模拟调制解调器速度的设置,对于想要更多控制的人来说,它有一个更好的选择 我更喜欢使用这样的工具,而不是将延迟代码放入我的应用程序中,因为这是

我知道这是个奇怪的问题。因为我通常是基于“假设”开发应用程序的,即所有用户的互联网连接都很慢。但是,有没有人认为有一种方法可以通过编程模拟缓慢的internet连接,这样我就可以“看到”应用程序在各种“连接速度”下的性能


我不担心使用哪种语言。我不是在寻找代码示例或任何东西,只是对其背后的逻辑感兴趣。

如果您运行的是windows,这是一个很棒的工具。它有一个模拟调制解调器速度的设置,对于想要更多控制的人来说,它有一个更好的选择

我更喜欢使用这样的工具,而不是将延迟代码放入我的应用程序中,因为这是一个更真实的模拟,也不是让我设计或编写实际的位。最好的代码是我不用写的代码


补充:Pavel Donchev关于软件技术的博客上的这篇文章展示了如何创建自定义模拟速度:。

您可以尝试,它可以模拟队列和带宽限制、延迟、数据包丢失和多路径效应。

有TCP代理,如iprelay和Sloppy,进行带宽整形以模拟慢速连接。您还可以使用IP过滤工具(如ipfw和iptables)进行带宽整形和模拟数据包丢失。

使用具有节流功能的web调试代理,如Charles或

一般来说,您会发现它们对web开发非常有用。主要的区别是Charles是共享软件,而Fiddler是免费的。

我使用过,它工作得很好。不仅可以限制单个进程的速度,还可以显示实际传输速率。

使用类似的工具。它可以假装连接速度慢


基本上,您请求的是完全相同的内容,而它只是将完全相同的请求转发给真正的服务器,然后仅以设置的字节数延迟响应。

此外,为了在某些*nixes上模拟慢速连接,您可以尝试使用。更多信息由本·纽曼的回答提供,关于这个问题

还有另一个叫做WIPFW的工具-

这有点老派,但你可以用它来模拟较慢的连接。它是基于Windows的,并且该工具允许管理员监控路由器从某台机器获得的流量,或者它转发的WWW流量。

:

  • 关于OSX
  • 在窗户上
  • 在Linux上

从Chrome38开始,您无需任何插件即可完成此操作。只需单击inspect element(或F12热键),然后单击“切换设备模式”,您将看到如下内容:

在许多其他功能中,它允许您模拟特定的互联网连接(3G、GPRS)

p.S.适用于试图限制上传速度的人。遗憾的是,目前这是不可能的

p.S.2现在您无需切换任何内容。节流面板可直接从网络面板获得

请注意,在单击“无限制”按钮时,可以创建自定义限制选项


在Linux机器上,您可以使用
wondershaper

apt-get install wondershaper

$ sudo wondershaper {interface} {down} {up}
{down}和{up}是KPB中的带宽

例如,如果您想将接口eth1的带宽限制为256kbps上行链路和128kbps下行链路

$ sudo wondershaper eth1 256 128
为了清除限制

$ sudo wondershaper clear eth1 

MacOSX从10.10开始就有一个名为的应用程序,它作为pf(ipfw的替代品)的GUI

它对于系统范围或特定于域的节流非常有效。我只是能够使用它将下载速度在300Kbps和30Mbps之间滑动,以测试流媒体视频播放器的调整方式。

您可以将其用作代理服务器来模拟许多网络特性(速度、延迟、数据包丢失等)。它使用包控制网络,并且在大多数Linux发行版的内核中都启用了它

它由
tc
命令行应用程序(来自iproute2包)控制,但也有一些用于NetEm的web界面gui

其优点是,正如我所写,它不仅可以模拟不同的网络速度,还可以模拟数据包丢失、重复和/或损坏、随机或定义的延迟等,因此您可以模拟各种性能较差的网络

对于您的应用程序来说,它是绝对透明的,您可以将操作系统配置为使用NetEm代理服务器,这样来自该机器的所有连接都将通过NetEm进行。或者,您可以仅将应用程序配置为将其用作代理

我一直在用它在各种模拟的低性能网络上测试Android应用程序的性能。

更新这个(在被问到9年后),因为没有提到我想要的答案:

Firefox也有限制连接速度的预设。在开发者工具的网络监视器选项卡中找到它们。默认值为“无节流”

最慢的是GPRS(下载速度:50kbps,上传速度:20kbps,最小延迟(ms):500),从“良好”和“常规”2G、3G和4G到DSL和WiFi(下载速度:30Mbps,上传速度:15Mbps,最小延迟(ms):2)


更多信息,请参阅针对Linux的

就个人而言,虽然很好,但我发现对于我的用例来说是最通用的;我通常对延迟的影响感兴趣,而不是带宽(即WiFi连接问题),而且它非常容易模拟随机数据包丢失/损坏等。它也非常容易访问,而且免费(与基于硬件的系统不同)

另一方面,对于Windows来说,这是非常棒的。我还想补充一点(关于网站)浏览器节流不是模拟现实生活中网络问题的准确方法(我认为“TKK”对上述原因中的一些进行了评论)

希望这对别人有帮助