Macを使い始めて3年悩み続けていた共有フォルダ上のファイルアクセスに時間がかかる問題が解決するときが来た!
sudo sysctl -w net.inet.tcp.delayed_ack=0
参考 : sudo sysctl -w net.inet.tcp.delayed_ack=0
なんとこれだけでOK。この瞬間にもうサクサクですよ。信じられない!
iTunesの曲送りも、プレビューでの写真閲覧も、大量にファイルがあるフォルダへのFinderアクセスも! これで! これだけで! 超快適に! 興奮が止まらない!
で、このnet.inet.tcp.delayed_ackなるパラメータを調べてみたら、Unix系OSでは結構昔から知られているパラメータみたいですね。下記参考サイトによればnet.inet.tcp.sendspaceについても設定を変更した方が良さそうですが、今のところ不満がないのでこのままで。。
参考 : FreeBSD QandA 1582
いやー本当に喜ばしい。
2012/09/30追記
環境限定の事象かもしれないので、何かとスペックを書いておく。
ファイルサーバ
- Aspire easyStore H340
- Windows Home Server with Power Pack 3
- 有線LAN(1Gbps)でルーターに接続
クライアント
- MacBook Pro (Mid 2009)
- Mac OS X 10.5 (Leopard), 10.6 (Snow Leopard) 10.7 (Lion), OS X 10.8 (Mountain Lion)
- 有線LAN(1Gbps)でルーターに接続
2013/01/25追記
コマンド打っただけだと再起動したら消えてしまうので、/etc/sysctl.confにnet.inet.tcp.delayed_ack=0を追記して下さい。
たとえば、
sudo vi /etc/sysctl.conf
として、
net.inet.tcp.delayed_ack=0
を追記します。
2013/09/21追記
ブコメで「システム全体でdelayed ack切るとは何事だ」という指摘がありましたので、別案を調べてみました。調べただけで試していませんが。
システム全体のdelayed_ackを無効にするのではなく、MacがWindowsとのファイル共有に使用しているSambaの設定でdelayed_ackを無効にすることで同様の効果を得ようというアプローチです。下記サイトご参考。
- 参考: Speed up SMB (Samba) server performance - Mac OS X Hints
- 参考: Speeding up SMB/CIFS Connections - Provider Wiki
ただ、これが有効そうだったのはOS X Lionまでで、Mountain LionからはSambaが含まれなくなってしまっている*1ので、下記サイトのように自分でSambaを入れないと上記手段が適用できないのでご注意。
気になる方は是非お試しいただきフィードバックいただければと思います。