Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get maximum TCP Receive/Send window in MAC OS X?

How to get maximum TCP Receive/Send window in MAC OS X?

There are two ctl in Linux. /proc/sys/net/core/rmem_max - Maximum TCP Receive Window (NET_CORE_RMEM_MAX) /proc/sys/net/core/wmem_max - Maximum TCP Send Window (NET_CORE_WMEM_MAX)

but i couldn't find how to get these parameters in mac os.

Does anybody know?

I have found the following ctls in MAC OS X: net.inet.tcp.recvspace, net.inet.tcp.sendspace, kern.ipc.maxsockbuf

It seems that recvspace+sendspace can't be greater than maxsockbuf. I have read about it here: http://www.macgeekery.com/tips/configuration/mac_os_x_network_tuning_guide_revisited

like image 393
Vlad Avatar asked Dec 22 '10 11:12

Vlad


2 Answers

I'm not 100% sure whether these are the correct ones, but try sysctl -n net.inet.tcp.recvspace and sysctl -n net.inet.tcp.sendspace. You can set them with sysctl -w (see man sysctl).

like image 189
DarkDust Avatar answered Oct 30 '22 14:10

DarkDust


As OP mentioned: recvspace+sendspace < maxsockbuf

maxsockbuf is limited by kern.ipc.nmbclusters, nmbclusters*2KB/16=maxsockbuf

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

To increase maxsockbuf, tell the system to use more than the default mbufclusters via the ncl boot arg: (you need to disable SIP before edit boot-args)

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

quote from here

like image 28
Hunger Avatar answered Oct 30 '22 15:10

Hunger