【问题标题】:How to get maximum TCP Receive/Send window in MAC OS X?如何在 MAC OS X 中获得最大 TCP 接收/发送窗口?
【发布时间】:2011-05-29 08:54:38
【问题描述】:

如何在 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

【问题讨论】:

    标签: linux macos tcp sysctl


    【解决方案1】:

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

    【讨论】:

    • 这些 ctls (net.inet.tcp.recvspace, net.inet.tcp.sendspace) 为我提供了当前用于发送和接收的 tcp 缓冲区大小。我需要知道 recvspace 和 sendspace 的最大值。唯一的想法是:kern.ipc.maxsockbuf
    • IPC 是 InterProcessCommunication 的简写,所以我怀疑是这个。
    • 其实socket api是ipc工具之一。我不确定kern.ipc.maxsockbuf。我在上面提到的文章中读过它。我应该进行一些测试。
    【解决方案2】:

    正如 OP 所说:recvspace+sendspace < maxsockbuf

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

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

    要增加maxsockbuf,告诉系统使用超过 默认mbufclusters 通过 ncl 引导参数:(您需要在编辑引导参数之前禁用 SIP)

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

    引用here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      相关资源
      最近更新 更多