【发布时间】:2012-03-25 18:36:11
【问题描述】:
来自节点redis docs:
socket_nodelay:默认为真。是否调用 setNoDelay() TCP 流,在底层禁用 Nagle 算法 插座。将此选项设置为 false 可能会导致额外的 以更多延迟为代价的吞吐量。大多数应用程序都需要 这设置为 true。
我为什么要关闭 Nagle 算法?
【问题讨论】:
标签: javascript node.js tcp redis
来自节点redis docs:
socket_nodelay:默认为真。是否调用 setNoDelay() TCP 流,在底层禁用 Nagle 算法 插座。将此选项设置为 false 可能会导致额外的 以更多延迟为代价的吞吐量。大多数应用程序都需要 这设置为 true。
我为什么要关闭 Nagle 算法?
【问题讨论】:
标签: javascript node.js tcp redis
当您担心延迟时,您可能希望关闭 Nagle 算法。我对算法的理解是它会延迟发送数据,直到有合理的发送量。这反过来又减少了流的协议开销,因为更多数据在单个数据包中发送(即使用单个标头)。
关闭 Nagle 算法后,协议栈立即发送数据。
它是在网络资源更加受限的时代设计的,因此减少开销比方便交付更为重要。然而,如今,由于互连速度普遍更快,并且对低延迟的要求越来越高,它变得不那么重要了。 (想想视频流!)
【讨论】: