3

我最近在我的计算机上设置了一个在虚拟机中运行的测试服务器,这样我就可以使用 XDebug 进行交互式调试等操作。在大多数情况下,它非常甜蜜,但是当我从同一个客户端一次向服务器运行多个请求时遇到了障碍。

问题是来宾-主机网络连接并不真正作为物理连接存在,因此它会以计算机硬件允许的速度运行。这通常不是一个大问题,但我正在尝试实现 APC 文件上传监控,这需要 AJAX 请求与文件上传并行运行以监控其性能。在现实世界中,网络会引入延迟和延迟等,留下足够的未使用带宽供 AjAX 请求与文件上传并行运行。但是,在测试机器中,AJAX 请求在上传完成之前无法从服务器获取任何数据,因为绝对没有可用的带宽。

是否可以在虚拟机中(在 Apache、PHP 或某些 Linux 实用程序中)设置某种带宽管理来限制每个 HTTP 请求的可用带宽?比如让每个请求限制在1mbps,但是客户端和服务器之间可以同时存在多个请求?我希望如果可以做到这一点,它将允许 AJAX 请求在上传过程中获取其数据,而不是在上传实际完成之前停止。

我尝试了一个名为 IPRelay 的实用程序,但我似乎无法让它工作,或者至少不能以限制每个请求的方式工作。

4

2 回答 2

0

您所要求的称为流量整形。

Lighttpd(Apache 的替代品)本机支持此功能

对于 Apache,有几种方法可以做到这一点。

  • mod_bandwidth - 一个 3pd 模块(最近没有更新),它似乎做同样的事情。
  • mod_bwshare - 设计用于对抗 DOS 攻击的 3pd 模块,但可能会有所帮助。

这是一个可能相关的ServerFault问题......

于 2010-12-16T17:47:28.013 回答
0

谢谢回复。但是,我发现了一个方便的 Linux 小实用程序,称为 iprelay,它可以让我限制连接,它似乎让我可以打开多个连接,每个连接都限制在指定的限制。这就是我今天用来测试我的 APC 代码的东西,而且一切似乎都运行良好。

于 2010-12-17T16:59:55.230 回答