36.2. 启用 TCP_NODELAY
当发生事件时,TCP_NODELAY 将缓冲区写入内核,且无延迟。使用 setsockopt 命令启用 TCP_NODELAY。
流程
使用
setsockopt命令启用TCP_NODELAY。# int one = 1; # setsockopt(descriptor, SOL_TCP, TCP_NODELAY, &one, sizeof(one));应用其中一个 follwing 临时解决方案以防止性能下降:
-
在内存中构建连续数据包,然后将逻辑数据包发送到使用
TCP_NODELAY配置的套接字上的 TCP。 -
创建一个 I/O 向量,并使用
writev在配置了TCP_NODELAY的套接字上的写入v 传递给内核。
-
在内存中构建连续数据包,然后将逻辑数据包发送到使用