我正在为工作项目研究双 QSFP 40GBit 网卡,对 PCIe 3.0 的理论最大带宽有一些疑问。
我目前正在研究 CDW 上的双 QSFP PCIe 3.0 x8 卡(Mellanox MCX314A-BCBT),但我不认为 PCIe x8 能够在 100% 利用率下为两个 40Gbit 链路提供足够的带宽。
维基百科指出 PCIe 3.0 理论上每通道最大带宽为 985MB/s。因此,根据我的计算,PCIe 3.0 x8 将产生 7880MB/s 的最大带宽。如果这是真的,那么如果两个链路的利用率都达到 100%,该卡将使 PCIe 连接饱和。
以下是我的具体问题:
双QSFP 40Gbit网卡最大能输出多少带宽?
PCIe 8x 在饱和之前可以处理的最大带宽是多少?
有没有简单的方法来计算这个?
答案1
做一些维度分析
将每秒 7880 Mbytes 转换为 Gbits每秒我们得到 63.04 Gbits/秒
(63.04 gigabits per second)/(40 (gigabits per second)) = 1.576
如果你有这样的布局:
单元 (1) PCIe 3.0 插槽,x8 或更大 -> 一个 QSFP 卡,提供 1 x 40 Gbps,连接到 8 个通道
单元 (2) PCIe 3.0 插槽,x8 或更大 -> 一个 QSFP 卡,提供 1 x 40 Gbps,连接到 8 个通道
...那么它将正常工作,即使考虑到存在一些开销使得难以实现理论吞吐量,因为每个 PCIe 插槽都有自己的通道。
但是如果你有这样的布局:
单元 (1) PCIe 3.0 插槽,x8 或更大 -> 一个 QSFP 卡,提供 (2 x 40 Gbps) 连接到 8 个通道
... 那么它就无法正常工作,因为现在您实际上只有所需的 0.788 倍带宽,而不是所需的 1.576 倍。
我猜制造商认为以太网层的协议开销会使其速度减慢到足以使此限制无关紧要的程度,否则 I/O 子系统或应用程序轮转(往返)中的某些瓶颈会更严重。他们设计卡时让板上两个端口的最大理论吞吐量超过 8 个通道的理论吞吐量似乎很奇怪,但如果您真的希望利用 80 Gbps 吞吐量的 78% 以上,您可能只想购买两张卡(理想情况下,每张卡一个端口,如果您能找到具有该端口的其他型号),并将它们放在单独的插槽中,每个插槽至少有 8 个通道宽。
答案2
PCIe 8x 在饱和之前可以处理的最大带宽是多少?
单个 PCIe v3 通道的最大带宽为 985 MB/秒(8.0 Gbit/秒)。
x8 意味着最多可使用 8 条 PCIe 通道,理论上最大速度可达 64 Gbit/秒。
这比两条 40Gbit 链路还慢。
因此您无法全速运行两个链路。但在实践中,这可能就足够了。特别是当流量突发时。只要两个通道不同时突发即可。
答案3
看...
维基百科指出,PCIe 3.0 × 8 端口单通道理论输出约为 985MB/s。8 通道约为 7880 MB/s 或 7.69GB/s。
让我们转到添加卡.....
40G QSFP+ 意味着 40Gb/s 或基本上约为 5GB/s 的输出。因此,如果将两个输出端口的带宽结合起来,则为 10GB/s。
因此结论是这样的...
我们的输入瓶颈是 7.69GB/s,当然小于 10GB/s。因此,任何人如果给他们的卡贴上完全相同的规格标签,他们都是在试图愚弄你。