在 Linux 路由器中添加更多 NIC 卡对性能的影响

在 Linux 路由器中添加更多 NIC 卡对性能的影响

如果在 Linux 机上添加越来越多的 NIC 卡来将流量路由到不同的网络,会对性能产生什么影响。

假设我有 10 个不同的网络,并且只有一个配置为路由器的 Linux 机箱来执行路由。

为了在 10 个网络之间路由流量,我添加了 10 张 NIC 卡,并为每个新网络添加了一个额外的 NIC :)(我知道除了为每个网络添加额外的 NIC 之外,还有其他更好的方法来处理路由。)

流量在 1-2 Gbps 范围内。Linux 路由器是否能够在不丢弃数据包的情况下处理这样的流量?添加额外的 NIC 是否会对网络 i/o 以外的性能产生任何影响(如果我可以使用更强大的 CPU 来处理网络 i/o)。

答案1

在这种情况下,有几个因素会影响性能:

  • 网卡数量
    • 几个多端口 NIC 还是很多 1 端口 NIC?
  • NIC 卡功能
  • 外围总线速度
    • PCI、PCI-X、PCIe?
    • 所有这些 NIC 使用的总线数量
  • 管理堆栈的内核开销
  • 如果除了路由之外还有什么事情发生
    • 防火墙
    • 数据包整形
    • 代理

如果只是路由,过去 10 年内的所有 PC 硬件都应该足以传输数据包,特别是当总吞吐量从未超过 2Gbps 时。

当您尝试发送大量流量时,就会开始遇到问题。在这种 NIC 密度下,您可能会接近总线速度极限,但这实际上取决于硬件的年龄和功能。就 CPU 而言,只要您只是路由,它就可以跟上其他硬件可以发送的速度。

答案2

是的,更强大的处理器和 RAM 绝对不会有什么坏处。添加的 NIC 越多,它用于 RX 和 TX 缓冲区的内存就越多。并且需要更多的 CPU 能力来处理 NIC 卡生成的中断请求。

简单的结果是,需要更多的 RAM 和 CPU 能力。

相关内容