有没有办法限制apachebench连接到服务器的速度有多快?

我试图强调testing一个特定的PHP脚本,强制一个非常大的文件下载,但特别是当连接速度慢的客户端提出请求。 我也想同时testing在这样的负载下网站的其他部分是如何执行的。 我有FiOS,所以做几十个并发连接并不真正把服务器加载了很长时间(我们不关心音量,因为我们没有预料到这个文件有很多并发连接,只有几十个慢的),我想testing它,如果我在一个缓慢的连接说100kb /秒。 有没有办法限制ApacheBenchmark连接到网站的速度? 还是有另一种方法来暂时节制我的连接到这个网站? 我在本地运行Mac OS X,而服务器是运行Apache的Windows机器。

一种可能性是使用OS X的IPFWfunction集.IPFW是OS X的软件防火墙,恰好也支持stream量整形。 以下是如何configuration它(假定一个1.2.3.4作为Web服务器的IP地址):

  1. 打开terminal应用程序以获取命令行。
  2. 创build虚拟networking设备
    sudo ipfw pipe 1 config bw 15Kbyte/s
  3. 创build两条规则,通过虚拟设备将stream量redirect到Web服务器或从Web服务器redirectstream量:
    sudo ipfw add 1 pipe 1 ip from 1.2.3.4 to any sudo ipfw add 2 pipe 1 ip from any to 1.2.3.4

现在OS X计算机和Web服务器之间的所有stream量将被限制为15KB / s(根据需要更改此值)。

要删除configuration以恢复到无限带宽:
sudo ipfw delete 1
sudo ipfw delete 2
ipfw pipe delete 1

警告:
我不确定configuration一旦设置,在重新启动后仍然存在。
2.假定您的软件防火墙尚未configuration; 如果是,那么规则1和2可能已经存在,这里的命令会导致错误。

希望这可以帮助。

我很高兴你这样做; 很多人不明白,一旦他们的实验室走出“真正的互联网”,他们的应用程序将会有着根本性的变化。

你正在寻找的一般类别是广域网模拟器 。 如果你想做很多事情,而不是仅仅改变带宽,延迟,抖动和其他因素,那么他们就会从大约2千美元左右的硬件设备(和软件)出售。 Shunra和Linktropy是两个很好的供应商。

但是也有很多只有软件的解决scheme。 他们中的大多数运行在Linux上,但我想有些人可能会被哄到OSX上工作。 Wanem是一个很好的免费的。 ns-2是一个免费的模拟器 ,它与你想要的不同,可能更复杂,你build立一个假的networking,并模拟它。

或dummynet,但我会添加到Urgoll的很好的答案。