有没有办法让 scp 在 Mac OS X 上运行得更快?

有没有办法让 scp 在 Mac OS X 上运行得更快?

我正在尝试使用以下命令从我的 Macbook(运行 Snow Leopard)上传 Flex 生成的 SWF 文件(500 kb)

scp main.swf server.com:/

我设置了密钥身份验证,以避免每次都输入用户名/密码。使用我家里的网络(下行 768kbps/上行 300+ kbps),这个过程通常需要两分钟。

有趣的是,当我在 Windows XP 机器上使用 WinSCP 时,该过程最多只需 30-40 秒。

我的 MacBook 和 Windows XP 机器使用相同的互联网连接。MacBook 通过电缆连接到路由器(应该更快吧?),而 Windows XP 通过 Wifi 连接。

如果您需要更多信息来诊断问题,请告诉我。

谢谢!

更新:

按照 xenny 的提示,发布关于这两个设置的附加信息。

OSX: Core 2 Duo 2.0 GHz 4GB RAM

Windows XP Pentium D 2.8 GHz 2GB RAM

以下是 WinSCP 设置:会话协议 = SSH-2 SSH 实现 = OpenSSH_4.7p1 Debian-8ubuntu1.2 加密算法 = aes 压缩 = 否 文件传输协议 = SFTP-3

我在 OSX 中尝试了 -c aes,但它显示了“未知密码类型”消息。

答案1

MacBook 使用比 PC 上的 WinSCP 计算成本更高、更复杂的密码,这导致了速度变慢。

如果 MacBook 目前受到 CPU 限制,那么通过压缩数据流增加负载可能会使情况变得更糟。

如果您使用 ssh -c 选择较便宜的密码,您的问题应该会得到解决。我建议首先查看 XP 计算机使用的密码,假设两台计算机的处理器性能相当。

答案2

您应该检查的主要内容是您可以预期它的速度有多快。如果您的互联网上传速度为 300Kbps,则 wifi 和路由器的有线连接都不应该成为瓶颈。使用一些简单的数学运算来验证或反驳这一点;如果它的大小为 1 兆字节,您应该预计它需要 3 秒(左右)。

如果不是本地配置问题,或者无法修复,您可以使用scp -C压缩来加速大量传输。或者您可以使用同步,如果您一遍又一遍地上传同一个 swf 的新版本;如果它大部分是相同的,那么加速效果就会相当大。

答案3

您也可以尝试使用rsync而不是scp进行更新。这将允许在直接替换.swf文件时仅传输新版本的更改数据。

建议的语法:rsync --compress --times --progress main.swf server.com:/path/to/final/directory/on/the/webserver 有关更多信息,请参见man rsync手册页,并做好准备。

答案4

可能值得一提的是如何在 PC 上获取 blowfish 密码:

scp -o 密码=blowfish-cbc...

这对我来说几乎没有什么区别。我现在的 wifi 速度只有可怜的 75kb/s。

相关内容