在几乎每个 FreeBSD 网络调优文档中,我都能找到:
# /boot/loader.conf
net.inet.tcp.tcbhashsize=4096
Run Code Online (Sandbox Code Playgroud)
这通常与一些无用的语句配对,例如“TCP 控制块哈希表调整”或“将此设置为合理的值”。man 4 tcp也没有多大帮助:
Run Code Online (Sandbox Code Playgroud)tcbhashsize Size of the TCP control-block hash table (read-only). This may be tuned using the kernel option TCBHASHSIZE or by setting net.inet.tcp.tcbhashsize in the loader(8).
我能找到的唯一涉及这个神秘事物的文档是优化 FreeBSD IP 和 TCP 堆栈中传输层下的协议控制块查找小节,但它的描述更多地是关于使用它的潜在瓶颈。这似乎与将新的 TCP 段与它们的侦听套接字匹配有关,但我不确定如何。
TCP 控制块究竟是做什么用的?为什么要将其哈希大小设置为 4096 或任何其他特定数字?