使用 AFP 复制文件需要 40 分钟,但使用 scp 仅需 7 分钟。为什么 AFP 这么慢?
我的设置:
- D-Link DIR-300 无线路由器
- 搭载 Snow-Leopard 的 iMac 为法新社提供服务
- 带有 Leopard 的 Macbook 是客户端
答案1
虽然只是一种猜测,但测试起来很快。尝试在两台 Mac 上执行此操作:
sysctl net.inet.tcp.delayed_ack
...注意它报告的内容。它将是一个整数,可能是值 2 或 3...然后将其设置为零:
sudo sysctl -w net.inet.tcp.delayed_ack=0
...然后在 AFP 客户端上卸载所有已安装 AFP 的卷并重新安装它们,以便建立新的 TCP 连接。然后再次尝试文件复制测试,看看速度是否显著提高。
我遇到过 Mac OS X 的 TCP 延迟确认算法不太理想的情况,因此进行这个测试以快速排除这种情况可能会很好。
答案2
长期以来,AFP 通过 TCP 工作,它不再干扰数据包大小;或者实际上任何数据包。
尽管如此,几年前我使用 3Com 交换机时有过一次荒谬的经历。它可以完美地与 Windows 和 Linux 机器配合使用,处理我放置的任何流量;但任何涉及 Mac 的东西都慢得离谱(大约 100kbits/sec)。我打电话给客户服务部门,并向他们发送了大量流量捕获;但只要他们看到任何标记为 Apple 的以太数据包……不管怎样,他们就会说“我们不支持 appletalk”,然后结案。我设法更换了 3 次交换机;但没有任何变化。
不用说,那是我购买或推荐的最后一款 3Com 产品。现在我使用 DLink 和戴尔交换机。这些产品都没有问题。
当然,这不是你的情况。
答案3
我读到过 AFP 的数据包非常小,这可能会对你的 wifi 造成不良影响,特别是如果你启用了加密功能。即使是少量的数据包丢失也可能会毁了你,或者加密开销(小数据包)可能会耗尽你所有的带宽。
不管怎样,您能解决问题吗?为什么不直接使用 scp?