禁用 NIC 接收端缩放散列

Aln*_*tak 5 performance udp linux-networking

在运行 Fedora Core 27 的基准实验室系统上,我有 Intel X710 10GE 卡和 12 核 Xeon 处理器,配置了 12 个 NIC 队列和基于 IP 地址和端口号的 RX Flow Hashing。

这会导致内核之间的平衡不平衡,以及不一致的性能结果。我已经irqbalance禁用了,从 NIC 队列到 CPU 核心配置的 1:1 映射通过/proc.

我的应用程序是基于 UDP 的,所以我并不担心散列。我无法在散列函数的输入中生成足够的熵来获得均匀的输出分布,所以我很想尝试使用普通循环法。

有没有办法禁用 RSS 的 UDP 并获得循环,同时仍保持单独的队列?我发现的所有讨论禁用 RSS 的链接似乎也禁用了多个队列。