7

如何在 MAC OS X 中获得最大 TCP 接收/发送窗口?

Linux中有两个ctl。/proc/sys/net/core/rmem_max - 最大 TCP 接收窗口 (NET_CORE_RMEM_MAX) /proc/sys/net/core/wmem_max - 最大 TCP 发送窗口 (NET_CORE_WMEM_MAX)

但我找不到如何在 mac os 中获取这些参数。

有人知道吗?

我在 MAC OS X 中找到了以下 ctls:net.inet.tcp.recvspace、net.inet.tcp.sendspace、kern.ipc.maxsockbuf

看来recvspace+sendspace 不能大于maxsockbuf。我在这里读过它:http: //www.macgeekery.com/tips/configuration/mac_os_x_network_tuning_guide_revisited

4

2 回答 2

2

我不是 100% 确定这些是否是正确的,但请尝试sysctl -n net.inet.tcp.recvspacesysctl -n net.inet.tcp.sendspace. 您可以使用sysctl -w(参见man sysctl) 设置它们。

于 2010-12-22T12:27:33.163 回答
1

正如OP提到的:recvspace+sendspace < maxsockbuf

maxsockbuf受限于kern.ipc.nmbclusters,nmbclusters*2KB/16=maxsockbuf

sysctl -a | egrep nmbcl\|maxsockb
kern.ipc.maxsockbuf: 8388608
kern.ipc.nmbclusters: 65536

要增加maxsockbuf,请通过 ncl boot arg 告诉系统使用超过默认值mbufclusters:(您需要在编辑 boot-args 之前禁用 SIP)

nvram boot-args="ncl=131072"
shutdown -r now

从这里引用

于 2019-08-30T03:15:07.343 回答