更新:我正在寻找一个自动化的“95% 带宽限制器”。我原本希望内核中的流量整形代码中有一部分可以实现,但我认为它不存在。我知道我可以手动限制在 3Mbps 并且是安全的,但这会浪费我可以使用的大部分带宽。
原来的:
假设我有一组共置服务器,我支付 95% 的 3Mbps 费用。我希望尽可能多地使用它们,而不会产生超额费用。如果不进行任何限制,服务器将产生 10Mbps 的流量,从而导致超额费用。我要求的是,在 5% 的时间内完全不进行限制,因为 95% 的计费规则会将这些时间排除在外,同时在其余时间内将我的流量保持在 3Mbps 以下。
答案1
如果你使用的是 Linux,请查看Linux 高级路由和流量控制 HOWTO介绍如何使用 tc 和其他工具对链路执行流量整形和 qos。
有一些 tc 管理系统可以消除一些麻烦,例如塑造大师和奇迹塑造者。我没用过其中任何一个,而且 wondershaper 似乎维护得很差,但你可能会从中得到一些用处。
或者你可以使用捆绑的防火墙/管理系统,例如普福斯,m0n0wall, ETC。
对于像设置单一流量上限这样的简单任务,我只需使用 LARTC 操作指南编写一个 tc 脚本。
最后,如果你想要监控你的链接使用情况,以便直观地记录你的使用情况(以及你的 95% 百分位标记),可以使用类似仙人掌或者穆宁来将其形象化。
答案2
许多路由器都能够将带宽限制在 1 Mb/s 左右(许多路由器的带宽限制在几 kb/s 以内,但我希望谨慎行事)。路由器的实际配置在很大程度上取决于您使用的路由器。如果您将限制设置为 14Mb/s,则不会出现任何问题。
至于保持管道充满...嗯...那部分取决于你!
答案3
第 95 个百分位数的工作原理大致如下:
- 每 5 分钟计算传输的字节数(参见 ifconfig 中的字节计数器)
- 列出所有 5 分钟存储桶并按大小排序(cron 中的 */5)
- 淘汰前 5%
- 剩余的最高值是您的 95% 值。(请记住将 Mbytes/sec 转换为 Mbits/sec!)
- 重置运营商计费间隔的计数器,并与他们的 NOC 核实该间隔时间。还要查明 TX 和 RX 是一起计算还是分开计算,或者是否只对其中一个(或另一个)计费。
- 将您的号码与运营商的号码进行比较,并确保它们一致。
然后,您可以为第 95 百分位数编写一个脚本,检查当前的第 95 百分位数,然后相应地使用“tc”限制/监管您的流量。
随着时间的推移,您将获得更多样本,因此如果您超过目标 95%,那么如果您节流,您可能仍然有“时间”让那些高价值样本掉落。为了安全起见,您可以争取 80% 的目标并调整数字,直到它按照您想要的方式运行。
由于它是可突发的,您可以在每个月开始时不受限制,然后随着时间的推移提高限制,因为最高 5% 的流量不包括在计算中。
本文还有更多内容: