While updating the TCP tuning parameters on one of my OS X 10.11 servers, I noticed that my existing OS X TCP Performance Tuning page had gotten out of date. The page was nearly eight years old, so it is no surprise that happened. I updated the page in place since that is the definitive page location, but thought I would talk a little bit about what had changed.
First, RFC 1323 has been obsoleted and replaced with RFC 7323. Although this has not had much of an impact, it has removed one parameter we need to modify (
net.inet.tcp.rfc1323). This parameter was on by default anyway, so we never really had to change anything there.
Next, OS X 10.6 tied the socket buffer sizes to the number of mbuf clusters. Specifically, the max socket buffer is limited to 1/16th of the memory size of the mbuf cluster pool. In order to increase
kern.ipc.maxsockbuf to our desired amount, we first have to increase
kern.ipc.nmbclusters which actually happens in NVRAM. The updated TCP performance tuning document includes how to make that change.
Otherwise, there have been very few changes needed since the page was originally published in 2007.