主要区别是什么?
ethtool -C eth1 rx-usecs 0
)-合并从不同连接接收到的数据包,即增加bandwitdh,但增加接收socket options = TCP_NODELAY
)-合并来自的发送的数据包,该连接与相同,即增加bandwitdh,但增加发送最佳答案
中断合并关系到网络驱动程序:其想法是避免每次出现网络数据包时都重新调用中断处理程序。而是在接收到数据包后,NIC会一直等到接收到M个数据包或经过N微秒后再生成中断。然后,驱动程序可以一次处理许多数据包。 (否则,使用现代的千兆位和10千兆位适配器,处理器将需要每秒处理数十万或数百万个中断,这可能会阻止系统完成其他工作。)正如您的链接所指出的那样, (或至少可能是)额外延迟的成本,因为OS不会在最早的可能时刻开始处理接收到的数据包。
Nagle的算法专注于通过将有效载荷数据从多个数据包合并为一个数据包来减少发送的数据包数量。经典示例是telnet session 。如果没有Nagle,则每次按一个键时,系统都必须创建一个完整的新数据包(以太网上至少64个字节)以发送一个字节。
因此,中断合并的目的是支持更大的带宽利用率,而Nagle算法的目的实际上是产生较低的带宽(通过发送更少的数据包)。