在Squid中dynamic限制带宽

事实上,我的问题是在networking中从互联网上下载大文件的用户。

我的networking中有一个Squidcaching/代理服务器,位于我的networking和Internet之间。

我认为终止长时间活着的连接可能有助于防止用户下载大文件。 所以在这个post里面问,但是没有得到明确的答案。 用Squid看来这是不可能的。 : – /

现在,在这篇文章中也提出了一个解决scheme,即为每个用户限制带宽:我们只给每个用户一个合适的带宽,用户可以做任何事情(甚至是下载),而不用打扰别人。

但据我所知,Squid只能给用户分配一些静态带宽。 所以任何用户都有一个特定的静态带宽不能改变。 我看起来这是不公平也不是最佳的,因为在闲置的情况下(小用户请求的时候),我们应该在繁忙的情况下给他们更多的带宽。

所以在一个公平的系统中,带宽应该在考虑优先级的可用用户之间分配(一些用户应该比其他用户拥有更多的份额)。 任何用户的份额取决于所有可用的用户。 更多的用户less分享。 像这样的东西:

UserBandwidth = (OverallAllBandWidth / NumberOfCurrentUsers) 

如果一时之间我们只有一个用户,我们应该给他分配所有的带宽。

所以:

  • Squid能解决这个问题吗?

  • 是否有可能与其他软件? Linux本身如何? 我听说过linux内核的一些stream量整形function。

如果这是不切实际的,你会build议采取什么其他的解决scheme:

  • 防止用户下载(特别是HTTP下载)

要么

  • 强制执行一个公平且肯定dynamic的带宽限制

谢谢!

你可以使用

acl aclname rep_mime_type mime-type

阻止某些MIMEtypes下载(例如iso的)

reply_body_max_size

为可以下载的最大的文件设置一个上限

您也可以使用free-sa来分析您的日志以查看带宽正在发生的位置

http://free-sa.sourceforge.net/

编辑:其实鱿鱼延迟池将完全做你需要的。

阅读这篇文章: http : //www.howtoforge.com/squid-delay-pools-bandwidth-management