![每用户动态流量整形](https://linux22.com/image/797926/%E6%AF%8F%E7%94%A8%E6%88%B7%E5%8A%A8%E6%80%81%E6%B5%81%E9%87%8F%E6%95%B4%E5%BD%A2.png)
在工作中,我们有一个专门用于日常使用的互联网链接(服务器使用不同的链接),其上传带宽有限(目前为 3Mbps)。由于有大约 80 个用户,有时此上游链接的利用率会飙升至 100%,从而显著降低性能。大多数情况下,这是由于多个用户同时尝试将文件上传到 Dropbox、Google Drive 等。我尝试过对有问题的服务进行流量整形,但这需要一些维护,因为用户似乎非常擅长找到会占用大量上传带宽的新服务。
我一直在考虑一种不同的方法。某种基于用户的动态带宽管理。早上,每个人都会“干净”地开始,没有流量整形(或一些非常基本的方案),但随着时间的推移,“重度上传者”将自动受到越来越积极的整形(可能通过一些预定义的层级)。
我的想法是设置一个 Linux 机器作为路由器(或者可能是实际路由器前面的桥梁)。关于如何实现这一点,有什么想法吗?
答案1
您可能考虑使用 Linux 的流量控制 (tc) 来设置解决方案。随机公平队列 (http://opalsoft.net/qos/DS-25.htm) 可以为每个用户分配公平的带宽份额,确保没有人独占线路。
如果你把它放在分层令牌桶的末尾(http://opalsoft.net/qos/DS-28.htm)来限制速度,那么你就可以出发了。
不过,理解 tc 并不是一件容易的事,看看这个(http://opalsoft.net/qos/DS.htm) 和这个 (http://www.lartc.org/howto/lartc.qdisc.html)或者你可以看看预先构建的解决方案,比如 wonder-shaper (http://lartc.org/wondershaper/)