PCI-Express 分层架构--最薄弱的节点在哪里

PCI-Express 分层架构--最薄弱的节点在哪里

我对 PCI 架构是分层的这一事实感到疑惑。因此,即使我有两个 PCIx4 插槽,也可能无法充分利用它,因为插槽将连接在一个节点中,而该节点的带宽可能不足以处理 2x PCIex4。

我的问题背景是:我试图使用八个 PCIe 1GBit 接口。我有两张带 2 个端口的卡,一张带 4 个端口的卡。我能够在 4 个 NIC 接口上获得最大值。激活第 5 个端口后,每五个接口的性能都会略有下降。激活第 6、第 7 和第 8ht 接口后也是如此。

主要问题是:如何获取机器上的 PCIe 结构,“绘制”它,查看它的节点和连接,并推断出该树中最弱的节点?

答案1

每个 PCIe(v1)通道应该可以轻松处理 2 x 1Gbe 链路。

此时 DDR2 可以轻松处理 10Gbe 的数据速率。

一般来说,机器的 PCIe 布局由芯片组决定,如果您能找到英特尔或任何其他公司的图表,您就应该能够找出任何瓶颈所在。

例如: 英特尔 P45/ICH10

答案2

如果您运行的是类 Unix 操作系统,启动时探测消息通常会列举 PCI 总线上的所有内容,并向您说明其排列方式。Linux 系统有一个lspci命令可以执行相同的操作。

如果你需要更多的总线带宽,你可能需要考虑购买具有乌伊奥插槽。使用AOC-UG-14可让您在 PCI 总线上保留至少一个 4 端口千兆以太网卡。2U 主机可以有两个 UIO 插槽,另外我相信还有三个额外的 PCI 插槽,这很可能允许您构建一台具有 12 个 GigE 端口并全性能运行的机器。

答案3

这里涉及的不仅仅是 PCI 架构,还包括 FSB、内存带宽和所有芯片组的内部带宽。请注意 Wazoox 的评论 - 即使是相当新的 Xeon 平台在高线速下也表现不佳。

通过阅读您的其他评论,我了解到您正在软件中生成数据包,并通过千兆网卡将其推送出去。如果您对如何生成数据不了解,则可能会使内存带宽饱和。DDR2 将处理 10Gb,但是如果您在生成数据包的同时在内存中进行多次复制,那么您实际上会进行更多的内部流量。

此外,如果所有 8 个核心都已固定,那么您就无法跟上其中任何一个核心。无论是中断加载还是数据包生成过程中的代码路径不佳,都会有一些东西妨碍您。我建议先解决这个问题。分析您的代码,看看是否有任何明显的问题占用了您的大部分时间。

如果这没有帮助,并且根据您的使用要求,您可以考虑一些真正的网络处理/捕获/传输卡,例如恩代斯的 DAG 卡(我建议DAG 7.5 G2/G4PCI-e 的 PCI Express 卡不支持中断驱动,因此不会因中断而增加处理负载。它们本身不是网卡,因此您必须构建整个数据包和有效负载并处理第 2 层,但这并不昂贵。

免责声明:我为 Endace 工作。

相关内容