![使用两个英特尔 NIC 10G 端口时传输速率会降低](https://linux22.com/image/586167/%E4%BD%BF%E7%94%A8%E4%B8%A4%E4%B8%AA%E8%8B%B1%E7%89%B9%E5%B0%94%20NIC%2010G%20%E7%AB%AF%E5%8F%A3%E6%97%B6%E4%BC%A0%E8%BE%93%E9%80%9F%E7%8E%87%E4%BC%9A%E9%99%8D%E4%BD%8E.png)
我在运行 RHEL6 的服务器上使用 Intel 82599EB 10G NIC。我运行了一个程序,其中数据包以高速率生成。NIC 之前安装在另一台 PC 上,我能够同时在每个端口上生成 8-9Gbps 的流量。在这台服务器上,只有当一个端口正在使用时,我才能以 8-9Gbps 的速度生成流量。如果我同时在两个端口上生成流量,那么我的总传输速率会下降到大约 12Gbps(每个端口大约 6Gbps)。
我的相关“lspci -vvv”输出显示以下内容:
0b:00.0 Ethernet controller: ...
Capabilities: [a0] Express (v2) Endpoint, MSI 00
LnkCap: Port #1, Speed 5GT/s, Width x8
LnkSta: Speed 5GT/s, Width x4
LnkCtl2: Target Link Speed: 5GT/s
0b:00.1 Ethernet controller: ...
Capabilities: [a0] Express (v2) Endpoint, MSI 00
LnkCap: Port #1, Speed 5GT/s, Width x8
LnkSta: Speed 5GT/s, Width x4
LnkCtl2: Target Link Speed: 2.5GT/s
我的传输速率是否受到 LnkSta 中两个端口的“x4”限制?一个端口上的“目标链接速度:5GT/s”和另一个端口上的“目标链接速度:2.5GT/s”是什么意思?这也会导致速率降低吗?
另外,我看到几个 PCIE 插槽比我的 NIC 的 PCIE 连接器长。我可以将 NIC 安装在这些较长的插槽上吗?
答案1
另外,我看到几个 PCIE 插槽比我的 NIC 的 PCIE 连接器长。我可以将 NIC 安装在这些较长的插槽上吗?
大部分情况下是的。例如:理论上是的,但实际上不确定 - 糟糕的 BIOS 可能会破坏这一点。例如,过去带有 RAI 卡的图形端口(ncice pCIEx16)可能会由于 BIOS 处理不佳而导致启动失败...虽然那是几年前的事了,但现在不应该再发生这样的问题了。我经常这样做,从图形插槽运行 RAID 控制器并在服务器场景中使用板载显卡。
尝试看看这里唯一的解决方案是什么 - PCIe 兼容,可以将较小的连接器放入标准中的较大插槽中。较大的连接器甚至不必连接所有引脚 - 您可以在 PCIex16 连接器上安装 PCIex1 链接,优势很明显,所有卡都适合但只能与 PCIEx1 一起使用...我这里有一些转换器,可以在 PCIEx1 插槽上运行显卡以进行数字运算。
我的传输速率是否受到两个端口的 LnkSta 中的“x4”限制?
那么,端口的物理限制显然限制了线路的速度,对吧?是的,这是物理限制 - 无法通过编程解决。
一个端口上的目标链接速度为“5GT/s”,另一个端口上的目标链接速度为“2.5GT/s”,这是什么意思?这也会导致速率降低吗?
其他人必须回答什么,但我在谷歌中找到了这一点:
http://www.xilinx.com/support/answers/37497.htm
如果正如我所读到的,那就是配置的上限 - 所以是的,那应该是一个原因,但问题是为什么,所以它可能是其他东西的症状。