首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >10 Gbps通过Linux被解决了吗?

10 Gbps通过Linux被解决了吗?
EN

Unix & Linux用户
提问于 2022-06-03 19:10:32
回答 1查看 438关注 0票数 3

我试图使用tc在一个拥有10 Gbps NIC的系统上塑造流量,我发现我无法通过任何qdisc获得接近10 Gbps的任何东西。当我这么做时:

代码语言:javascript
运行
复制
tc qdisc add dev $ifc root handle 1: htb default ffff
tc class add dev $ifc parent 1:0 classid 1:1 htb rate 32Gbit
tc class add dev $ifc parent 1:1 classid 1:ffff htb rate 1Gbit ceil 16Gbit burst 1G cburst 1G

我的吞吐量被限制在3 Gbps左右。我试过了CBQ和HFSC的变体。不管我做什么,我似乎都无法回避。

仅仅添加qdisc并不会导致问题(正如我前面所说的)。我花了好几天的时间阅读所有我能找到的提到tcqdisc和"10G“的东西。在6-10年前,似乎有很多邮件列表活动(也许是在10G变得普遍,取代1G之后),但没有解决问题。我是不是遗漏了什么?在Linux上不可能形成多个千兆位/秒吗?

EN

回答 1

Unix & Linux用户

发布于 2022-09-13 12:43:18

这是由于qdisc锁定问题造成的(默认情况下它会附着在一个CPU核心上)。已知的解决方案是XDP-重定向、XPS和HTB卸载

XDP重定向解决方案是xdp-cpumap-tc,它为每个CPU核创建一个独立的HTB,然后使用XDP-重定向将IP通信过滤到适当的CPU /顶层HTB中。

我们开发了一个名为LibreQoS的应用程序,它使用XDP,我们发现XDP至少是一个非常好的用例解决方案。有一些值得注意的限制,例如您需要能够将您的通信量划分为每个CPU核心的4-6 Gbps。这可能是一个很大的吞吐量总量(20+ Gbps很容易),但是如果您需要一个HTB叶来形成超过4 Gbps的数据,那么在HTB的qdisc锁定问题在内核中得到解决之前,这是不可能的。

HTB卸载也是一个潜在的解决方案。吞吐量非常好。缺点是只有Mellanox/Intel NIC支持它,它的最大叶深度为3级。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/704918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档