Networking 服务器上的更多NIC是否意味着有可能实现更持久的并发I/O?

Networking 服务器上的更多NIC是否意味着有可能实现更持久的并发I/O?,networking,network-programming,Networking,Network Programming,如果您试图构建一个需要最高可能的持续网络带宽的应用程序,用于多次重复的文件传输(不用于流媒体),拥有2个或更多NIC是否有益?可能有益,但不一定是“开箱即用”的方式 您需要确保两个NIC都得到实际使用—通过在不同的网段上分离客户端、使用循环DNS、使用通道绑定、使用负载平衡器等方式。此外,您还需要确保您的网络基础设施实际具有足够的带宽以允许更高的吞吐量 但一般原则是合理的——服务器上可用的网络带宽比磁盘I/O少,因此添加的网络带宽越多越好,直到达到或超过磁盘I/O,那么它就不再对您有帮助了。可能

如果您试图构建一个需要最高可能的持续网络带宽的应用程序,用于多次重复的文件传输(不用于流媒体),拥有2个或更多NIC是否有益?

可能有益,但不一定是“开箱即用”的方式

您需要确保两个NIC都得到实际使用—通过在不同的网段上分离客户端、使用循环DNS、使用通道绑定、使用负载平衡器等方式。此外,您还需要确保您的网络基础设施实际具有足够的带宽以允许更高的吞吐量


但一般原则是合理的——服务器上可用的网络带宽比磁盘I/O少,因此添加的网络带宽越多越好,直到达到或超过磁盘I/O,那么它就不再对您有帮助了。

可能是的。实际上,这还取决于网络结构,以及网络I/O是否是应用程序的瓶颈

我认为您的答案将取决于您的服务器和网络体系结构,不幸的是,它们可能会随着变化而变化

实际上,您所做的是试图消除整个应用程序或设计中的“当前”瓶颈,您可能已将其确定为当前NIC(如果您尚未确认这一点,那么我将停止并检查这一点,以防在达到NIC限制之前,有其他因素限制吞吐量)

关于此类性能优化的一些一般要点:

  • 值得检查的是,您是否可以选择将当前NIC升级到更高带宽的接口-如果不必向应用程序添加负载平衡硬件/软件/配置,这可能是一个更简单的解决方案

  • 如上所述,您需要确保网络中的所有其他元素都能处理这种增加的流量,即,您的internet连接或路由器中不会出现拥塞

  • 同样,如果流量继续增加,那么一旦您进行了此更改,那么值得检查下一个瓶颈是什么。如果在需要新服务器之前,添加一个新的NIC只会让您的吞吐量增加5%,那么立即寻找一个新服务器并从新服务器获得更好的IO可能会更便宜

  • 您的流量概况以及预测其发展的方式可能会影响您的决策。如果你有一个正常的每日高峰,只是稍微超过你的负荷,那么一个简单的修复可能会为你服务很长一段时间。如果您有稳定增长的流量,那么可能需要对您的系统架构进行更基本的了解

  • 与上面的最后一点相一致,可能值得查看各种云服务,看看是否有任何云服务能够以合理的成本满足您的需求,甚至可以作为每天的临时资源,让您度过流量高峰

最后,您应该意识到,一旦您确定了一个解决方案并将其启动并运行,您组织中的其他人将更改或升级该应用程序,从而引入一个新的、意想不到的瓶颈