hoo*_*enz 8 linux routing iptables traffic-shaping
我有一个 linux 路由器,它的外部有一个 10GBe 接口,内部有一个绑定的千兆以太网接口。
我们目前有 2GBit/s 的预算。如果我们超过一个月的平均速度超过 5%,那么我们将为整个 10Gbit/s 容量收费。以美元计算,这是一个很大的进步。
所以,我想在 10GBe 接口上将其限制为 2GBit/s。
TBF 过滤器可能是理想的,但此注释值得关注。
在除 Alpha 之外的所有平台上,它能够以理想的最小突发性调整高达 1mbit/s 的正常流量,以配置的速率准确发送数据。
我应该使用 TBF 或其他一些过滤器将此速率应用于接口,我将如何做。我不明白这里给出的例子: 交通控制 HOWTO
特别是“示例 9. 创建 256kbit/s TBF”
tc qdisc add dev eth0 handle 1:0 root dsmark indices 1 default_index 0
tc qdisc add dev eth0 handle 2:0 parent 1:0 tbf burst 20480 limit 20480 mtu 1514 rate 32000bps
Run Code Online (Sandbox Code Playgroud)
256K bit/s 的速率是如何计算的?在本例中,32000bps = 32k 字节每秒。由于 tc 使用 bps = 每秒字节数。我想爆发和限制开始发挥作用,但是您将如何选择合理的数字以达到所需的速率?
这不是错误。我对此进行了测试,它提供了接近 256K 的速率,但并非完全如此。
编辑
在做了大量的阅读和测试之后,我得出的结论是,由于涉及带宽,TBF 是不合适的。无论我尝试过什么设置,我都无法让 TBF 提供 > ~50Mbit/s 的带宽。根据lartc.org/lartc.pdf,RED 方法更适合对带宽> 100Mbit/s 进行整形,因此我将尝试使用它。
但是,为 min 选择一个值(即可以进行标记的平均队列大小)。给出的例子是这样的:
您应该通过计算您希望的最高可接受的基本排队延迟来设置最小值,并将其乘以您的带宽。例如,在我的 64kbit/s ISDN 链路上,我可能需要 200 毫秒的基本排队延迟,因此我将 min 设置为 1600 字节。
您将如何选择可接受的最高基本排队延迟?该示例适用于 64kbit/s。
什么是 2Gbit/s 可以接受的?
256K bit/s 速率是如何计算的?在此示例中,32,000bps = 每秒 [32,000] 字节。
是的,那里的数学是正确的。如果您看到的数字接近 256k,则可能略低一些。你从哪里测量这个数字?如果是您的浏览器下载或类似的东西,它们不会计算数据包标头的开销,而是tc计算所有内容。
| 归档时间: |
|
| 查看次数: |
4612 次 |
| 最近记录: |