从本质上讲,对于数据包处理代码,每秒处理来自网卡的14M数据包,它运行在哪个CPU上是否重要?
不确定你是否还需要一个答案,但无论如何我会发一个答案以防其他人可能需要它.我假设你问的是硬件拓扑而不是OS irq亲和性问题.>杰里的评论不是100%正确.虽然NUMA是SMP,但是来自不同NUMA节点的内存和PCIe资源的访问不是对称的.与主从AMP架构相反,它是对称的,而不是资源访问.
> NIC通常通过PCIe链路连接到CPU(我假设你在谈论以太网/ IP的东西,而不是像InfiniBand那样的一些HPC互连). PCIe从CPU链接根.例如,英特尔®至强®处理器E5-2699 v4具有30个PCIe v3.0链路,而英特尔X520 QDA-1 10Gbe需要4或8个PCIe v3.0通道才能连接到CPU.
>当PCIe链路直接进入CPU时,NIC无法同时连接到两个CPU.这取决于PCIe物理插槽连接到哪个CPU插槽的主板配置,并且由于它是硬连线的,因此无法轻松切换. PCIe拓扑信息应位于数据表中,或打印在PCIe插槽旁边的主板上(例如CPU1_PCIE8,CPU2_PCIE4).
https://www.asus.com/us/Commercial-Servers-Workstations/ESC4000_G3S/specifications/
http://www.intel.com/content/www/us/en/embedded/products/grantley/specifications.html
>在相同的NUMA域中访问NIC比在NUMA域中访问更快.您可以在http://docplayer.net/5271505-Network-function-virtualization-virtualized-bras-with-linux-and-intel-architecture.html找到一些性能参考.图12-16.
总之,如果可能,请始终在同一NUMA节点内使用具有NIC的核心以获得最佳性能.