0

是否有 tc-sfq(随机公平队列)的替代方法,允许根据数据包大小(总字节)而不是数据包计数来配置限制?

这样做的原因是,给定一个 50 字节的数据包大小,一个 htb 类(速率=1000kbit)可以例如每 10 毫秒出列 25 个数据包,但是对于 1500 字节的数据包大小,每 10 毫秒只有 0.83 个数据包。

如果我将 tc-sfq 限制设置为 25 个数据包,那么在最坏的情况下,一个完整的队列需要 300 毫秒才能清空。

--

这是在 Linux 3.0.101 上,所以像 fq_codel 这样的东西不能正常工作。也许有人有一个补丁,用字节限制替换了 sfq 数据包限制(类似于 pfifo 与 bfifo)?

4

1 回答 1

0

这就是我所做的:我将内核树中的一些更改反向移植到 linux 3.0 sfq 中。

由于提交ddecf0...,每个插槽都有一个积压计数器。所以我需要改变的是使用深度参数(sfq_sched_data.maxdepth)作为最大积压字节slot->backlog >= q->maxdepth数:如果在入队函数中,只需丢弃数据包。

以 1000kbit 的速率,我现在可以设置深度 3750,这意味着一个插槽最多需要 30 毫秒才能清空。这可能是 2 个每个 1500 字节的大数据包或 25 个每个 150 字节的小数据包。

于 2014-08-27T21:33:41.847 回答