如何在 cgroup 之间配置公平的带宽共享?

如何在 cgroup 之间配置公平的带宽共享?

tc使用随机公平队列 (SFQ) 来配置公平的带宽共享是相当容易的。流量,但是一个应用程序可以打开多个流并获取不公平的带宽共享。是否可以在之间配置公平的带宽共享应用反而?

将每个应用程序分组到一个 cgroup 似乎是明确的第一步。如果 SFQ 支持对类 ID 进行哈希处理,则可以轻松为tc filter每个 cgroup 分配一个类 ID。不幸的是,SFQ 似乎不支持这一点。另一种有前途的方法是使用 CBQ,它可以跨类别进行加权循环。不幸的是,使权重全部相等似乎不起作用。

是否有另一种方法可以在 cgroup 之间公平共享带宽?

答案1

查看 net_cls cgroup 控制器。它基本上附加了特殊标签(定义在/mntpoint/net_cls.classid源自与该 cgroup 中的应用程序关联的套接字的每个数据包中)。稍后您可以classid在附加到 qdisc 的过滤器中使用此“标签”,以根据 cgroup 将流量传递到不同的类流量来自。

我找到的关于这个主题的唯一文档是一些红帽幻灯片[HTML 通过谷歌]。

相关内容