【问题标题】:Simulate poor bandwidth in a testing environment (Mac OS X)?在测试环境(Mac OS X)中模拟较差的带宽?
【发布时间】:2012-06-11 17:35:58
【问题描述】:

我们有一个定制的 Flash/HTML5 视频播放器供我们网站上的用户使用。我目前正在充实带宽“次优”的用户的体验——基本上我们希望客户端代码能够检测到由于过度缓冲而导致的糟糕用户体验。我想在我的本地开发环境中测试这种“低带宽”处理代码。

有没有人知道在本地环境中模拟“低带宽”以进行测试的好技术?

更具体地说,我的本地浏览器连接到具有 uWSGI、nginx 和 python/django 实例的虚拟机,并且我希望能够在这些系统的内容交付中注入任意数量的延迟。 (我主要关心的是用 nginx 来做这件事,它负责视频内容的传输/流式传输)。

编辑:开发环境可能是 Mac OS X。

【问题讨论】:

标签: testing nginx video-streaming buffering


【解决方案1】:

只需使用 nginx 的配置即可。

虽然 OS X Lion 的网络链接调节器按预期工作,但当我真的只是想测试 Web 应用程序行为的一个子集时使用它仍然烦人 - 即缓慢的视频缓冲处理系统。

因此,我发现在我的nginx.conf 文件中设置速率限制要方便得多,例如:

location ~ /files/(.*\.(mp4|m4v|mov))$ {
    ...
    limit_rate 50k;  #  <-- Limit download rate per connection to 50kbps
    ...
}

编辑:见nginx HttpCoreModule docs

【讨论】:

  • 我遇到的并且我认为必须在此处添加的内容:如果 limit_rate 似乎不起作用,请确保设置了“proxy_buffering on”(默认为开启)
  • 这是一个很好的网站模拟吗?一个浏览器可以打开多个连接,不是吗?
【解决方案2】:

FreeBSD 是 Mac OS 的祖先,因此您可以使用内置强大的防火墙,称为 ipfw。 它可以用于许多不同的情况,例如模拟低带宽。使用您自己的 IP 地址环回 (127.0.0.1) 或远程服务器(在这种情况下为 8.8.8.8)。

我们做了一个网络应用程序的视频采访,所以我想分享一下我们模拟坏连接的经验,见下面的例子:

$ sudo su

$ ipfw show
$ ipfw pipe 1 config delay 600ms bw 256kbit/s
$ ipfw add pipe 1 dst-ip 8.8.8.8 dst-port 80

$ ipfw flush

ipfw 管道允许您使用 delaybw 甚至 prob 来模拟缓慢和不稳定的连接模拟丢包。

【讨论】:

    【解决方案3】:

    我刚刚找到了 Mac OS X Network Link Conditioner,但我还不确定它是否可以在 loopback 上运行,这对于我的目的来说是必需的。

    编辑:这似乎适用于环回,所以它似乎解决了我的问题!如果您在 OS X 10.7 上,这可能是要走的路

    【讨论】:

      【解决方案4】:

      我正在使用这个程序NetLimiter 来模拟“带宽不足”。它不是免费的,但有一个运行良好的试用版。仅适用于 windows :(

      【讨论】:

        猜你喜欢
        • 2010-10-10
        • 1970-01-01
        • 2016-11-29
        • 2016-01-27
        • 2018-11-23
        • 2014-01-24
        • 2021-06-01
        • 1970-01-01
        相关资源
        最近更新 更多