Since BT upgraded my FTTC connection from 40/10Mb to 80/20Mb I’ve struggled to receive more than 50Mb speeds using OS X 10.7. Turned out to be a TCP settings issue, here’s the fix:
Suggested tuning parameters for a AFP client and AFP Server
Here are some suggested tuneables we have found to increase AFP
performance between Mac clients and a Mac server.-Bring up a Terminal/shell window
-become root user with:
sudo sh
(supply the password…it will not display as you type)
The result should be that the “prompt” changes from
a $ to a #Copy these lines with your mouse and execute them (right-click/paste)
them into the terminal/shell window you became root on. The list
of commands are different based on the amount of memory
you have on your system as well as if it is a client or server.For an AFP server:
For systems with >= 16GBytes of memory,
echo “net.inet.tcp.delayed_ack=2” > /etc/sysctl.conf
echo “kern.maxnbuf=60000” >> /etc/sysctl.conf
echo “kern.maxvnodes=280000” >> /etc/sysctl.conf
echo “net.inet.tcp.sendspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.recvspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.maxseg_unacked=32” >> /etc/sysctl.confFor systems with >= 8 GBytes of memory:
echo “net.inet.tcp.delayed_ack=2” > /etc/sysctl.conf
echo “kern.maxnbuf=42000” >> /etc/sysctl.conf
echo “kern.maxvnodes=150000” >> /etc/sysctl.conf
echo “net.inet.tcp.sendspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.recvspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.maxseg_unacked=32” >> /etc/sysctl.confFor systems with >=4 GBytes of memory:
echo “net.inet.tcp.delayed_ack=2” > /etc/sysctl.conf
echo “kern.maxnbuf=60000” >> /etc/sysctl.conf
echo “kern.maxvnodes=280000” >> /etc/sysctl.conf
echo “net.inet.tcp.sendspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.recvspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.maxseg_unacked=32” >> /etc/sysctl.confor for systems with < 4GBytes of memory:
echo “net.inet.tcp.delayed_ack=2” > /etc/sysctl.conf
echo “kern.maxvnodes=60000” >> /etc/sysctl.conf
echo “net.inet.tcp.sendspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.recvspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.maxseg_unacked=32” >> /etc/sysctl.confFor an AFP client:
For systems with >= 16GBytes of memory,
echo “net.inet.tcp.delayed_ack=2” > /etc/sysctl.conf
echo “net.inet.tcp.sendspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.recvspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.maxseg_unacked=32” >> /etc/sysctl.confFor systems with >= 8 GBytes of memory:
echo “net.inet.tcp.delayed_ack=2” > /etc/sysctl.conf
echo “net.inet.tcp.sendspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.recvspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.maxseg_unacked=32” >> /etc/sysctl.confFor systems with >=4 GBytes of memory:
echo “net.inet.tcp.delayed_ack=2” > /etc/sysctl.conf
echo “net.inet.tcp.sendspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.recvspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.maxseg_unacked=32” >> /etc/sysctl.confor for systems with < 4GBytes of memory:
echo “net.inet.tcp.delayed_ack=2” > /etc/sysctl.conf
echo “net.inet.tcp.sendspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.recvspace=2097152” >> /etc/sysctl.conf
echo “net.inet.tcp.maxseg_unacked=32” >> /etc/sysctl.confThe above changes take effect after a reboot.
[Source]
Instant throughput increase to closer to the speeds that my modem reports.