{"id":2792,"date":"2017-11-29T23:46:56","date_gmt":"2017-11-29T23:46:56","guid":{"rendered":"http:\/\/blog.designed79.co.uk\/?p=2792"},"modified":"2018-01-02T21:34:22","modified_gmt":"2018-01-02T21:34:22","slug":"speed-up-macos-x-file-transferring-over-network","status":"publish","type":"post","link":"https:\/\/blog.designed79.co.uk\/?p=2792","title":{"rendered":"Speed up MacOS X file transferring over network"},"content":{"rendered":"<p>We had an issue with a group of MacOS X clients on a particular VLAN that were experiencing painfully slow transfers (~100KB\/s) to our Solaris fileservers running netatalk (AFP). The problem was solved by tweaking a kernel parameter on the client that made it \u201cmore compatible.\u201d<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"text codecolorer\">delayed_ack=0 responds after every packet (OFF)<br \/>\ndelayed_ack=1 always employs delayed ack, 6 packets can get 1 ack<br \/>\ndelayed_ack=2 immediate ack after 2nd packet, 2 packets per ack (Compatibility Mode)<br \/>\ndelayed_ack=3 should auto detect when to employ delayed ack, 4 packets per ack. (DEFAULT)<\/div><\/div>\n<p>Get the current value for net.inet.tcp.delayed_ack (default is 3)<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"text codecolorer\">$ sudo sysctl -a net.inet.tcp.delayed_ack<br \/>\nnet.inet.tcp.delayed_ack: 3<\/div><\/div>\n<p>Let\u2019s try changing it to 2 and you should immediately notice a difference (this worked for us, you may also try values of 0 and 1)<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"text codecolorer\">$ sudo sysctl -w net.inet.tcp.delayed_ack=2<br \/>\nnet.inet.tcp.delayed_ack: 3 -&gt; 2<\/div><\/div>\n<p>I\u2019m not sure why OSX ships with a default of \u201c3.\u201d Our software vendor also did not know, nor did our enterprise Apple support. All I do know, is that Google is filled with people experiencing the same problems as far back as ten years ago. This fix is good for all sorts of network weirdness and compatibility issues with Samba, netatalk, FreeBSD, Solaris, Windows, etc etc.<\/p>\n<p>To make this persistent across reboots you will need to use \/etc\/sysctl.conf. If this file does not exist, create it, or use the following command.<\/p>\n<div class=\"codecolorer-container text default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"text codecolorer\">$ echo &quot;net.inet.tcp.delayed_ack=2&quot; | sudo tee -a \/etc\/sysctl.conf<\/div><\/div>\n<p>You can read more here:<br \/>\n<a title=\"TCP Performance problems caused by interaction between Nagle's Algorithm and Delayed ACK\" href=\"http:\/\/www.stuartcheshire.org\/papers\/NagleDelayedAck\">TCP Performance problems caused by interaction between Nagle\u2019s Algorithm and Delayed ACK<\/a><\/p>\n<header class=\"entry-header\"><\/header>\n<div class=\"entry-content\">\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>We had an issue with a group of MacOS X clients on a particular VLAN that were experiencing painfully slow transfers (~100KB\/s) [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2792","post","type-post","status-publish","format-standard","hentry","category-info-on-tech"],"_links":{"self":[{"href":"https:\/\/blog.designed79.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/2792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.designed79.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.designed79.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.designed79.co.uk\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.designed79.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2792"}],"version-history":[{"count":0,"href":"https:\/\/blog.designed79.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/2792\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.designed79.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.designed79.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.designed79.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}