我在 VMware 下运行 ubuntu。我将 USB 驱动器直接连接到 ubuntu,而不是通过 Windows XP,然后开始将文件从我的 mac leopard 传输到 ubuntu/usb HD
大多数情况下,速度为 2.8MB/s。我使用的 scp 命令如下
scp "name here@lanIP:./" ./
我不想停止传输来检查。(.bash_history 没有显示我的命令)
这个传输速度合适吗?我的笔记本电脑和 Mac 通过以太网电缆连接。网络应该是 100mbp,这让我觉得应该少于 12mb。也许每秒 8MB。2.8 似乎很慢。我的传输量超过 22gb,所以传输速度慢会让我很难受。按照我的情况,大约需要 3 小时才能完成。
答案1
您的速度与我在其他 100Mbps 网络上使用 SSH 时看到的速度非常相似。传输速度似乎在很大程度上取决于您使用的操作系统,而不是可用的 CPU 速度。在一个网络上,运行 Debian 或 Ubuntu Linux 的 PC 之间的所有传输速度为 3MB/s,但当我在 Mac OS X 服务器上使用 SCP 时,我总是能获得超过 6MB/s 的速度。此外,从 Xen 服务器(我认为它运行的是 CentOS 变体)传输文件也为我提供了更高的速度。只有当我将数据从一个 Xen 虚拟机复制到同一 Xen 服务器上的另一个虚拟机时,我才能使用 Debian Linux 和 scp 获得更快的传输速度,然后我会获得 20+MB/s 的速度。
使用 Samba 共享,您通常可以达到 50Mbps 左右的速度,如果您想轻松获得速度,我建议您设置一个 FTP 服务器,这样我通常可以轻松获得 90Mbps,即使是从 Windows 机器上也是如此。
答案2
对于大量小文件,scp 效率极低。我建议改用 rsync。rsync 可以使用 ssh 进行传输,并且会注意到您已经传输的文件并节省带宽。
答案3
正如 Tobu 所说,SCP 在复制大量小文件时效率低下。一个常见的技巧是通过 SSH 传输 tar 流。请参阅:http://www.thingy-ma-jig.co.uk/blog/03-09-2008/using-tar-and-ssh-improve-scp-speeds
您还可以通过使用更快的密码(如 blowfish)来稍微提高速度。例如:
tar czf - /path/files-to-copy | ssh -c blowfish user@remotehos tar xzf - -C /path/to/destination
答案4
scp 之所以很慢,是因为它使用了一种协议,并且您必须管理一种协议的超时,而不是另一种协议的超时,以及重建数据流,而不是重建底层协议。它总是很慢,延迟越高,速度就越慢。尝试一些不通过 ssh 的方法。