如何加快通过Internet从服务器到服务器的文件传输?

如何以一个很快的速度将文件从一台服务器传输到另一台服务器? 现在我正在使用FTP传输文件,但花费了很多时间。 要传输2 GB的文件,大约需要3个小时。 有没有其他程序传输比FTP更快的文件? 服务器位置:一个在印度,另一个在美国。

这是你的位置正常吗? 如果您将2GB转移到其他网站,您通常会看到什么样的速度? 您的位置和远程位置的networking速度是多less?

长距离的传输速度将主要取决于两个位置之间可用的networking带宽以及两者之间的任何跳跃。 您正在通过互联网传输数据,这意味着速度可能会有很大的不同。 互联网不保证最低速度。

你最好的投注是:

  1. 在传输数据之前,请压缩本地服务器上的数据,使其尺寸更小。
  2. 使用rsync来即时压缩数据。 请参阅http://en.wikipedia.org/wiki/Rsync#Examples上的示例
  3. 将数据分成一次一个传输的块。 这不会加速数据传输,但它会使传输更加容错(如果传输失败99%,您将不需要从头开始重新启动)。 压缩可以帮助。
  4. 另一个ISP或networking可能提供更好的传输速度。 尝试另一个ISP或networking。

SF社区成员可能不会乐意让您回到Unix的石器时代,但是对于较低的协议开销和较好的压缩,您可能需要结合使用dd + netcat + bzip2 。 是的,这是不安全的,所以你必须closures所有的端口,除了两个节点。 没有保证,没有安全,没有authentication…但速度更快。

1 – 使用bzip2压缩你的文件得到说,file.bz2

2 – 在node2上使用netcat进行监听

  nc -l 6668 | dd of=/dir/file.bz2 
  1. 从节点1推它

      dd if=/dir/file.bz2 | nc node2 6668 
  • 使用SSHlogin到其中一台服务器
  • 打开从您login到其他服务器的服务器(例如lftp,scp等)的文件传输。
  • 发送文件。

最后两个可能是同样的事情,但我想从中获得3个步骤。 就像“发送文件”一样简单。

当我读到NAS设备的文件传输性能时,人们通过SMB的速度通常比FTP慢。 我了解到虽然可能会有很多烦人的FTP,但它本身并不是一个缓慢的协议。

我不希望这样做,其他所有的东西都保持不变,只是从FTP到另一个协议的改变,会让你看起来期待的速度提高。

你怎么知道这个问题不是带宽? 你可以尝试使用scp或rsync进行testing,并与FTP比较吗?

你是否在两端启用了TCP窗口缩放? 即使你有很多带宽,美国和印度之间的连接本质上也会有一个巨大的带宽延迟产品 。 如果启用了窗口缩放,并且您仍然看到糟糕的FTP性能,则可以尝试并行运行rsync 。

另外,停止使用FTP。 这是一个可怕的协议。 🙂

如果你试图传输一个2GB的文件,ftp是最干净和快速的协议之一,你也可以安全地使用恢复function,以防在传输过程中出现中断。

如果你想传输大量的小文件,Ftp是一个坏主意,因为你有一个巨大的无用的活动打开和closures每个文件的连接。

Rsync(通过ssh)或scp(sftp)是很好的select,但是您必须考虑encryption会显着降低吞吐量。 你可以使用像河豚('scp -c blowfish'或'rsync -e“ssh -c blowfish''')这样的光照algorithm,但速度总是低于ftp。

Netcat是另一种select,但只能在局域网上使用。

如果你的文件与已经在目的地的文件类似,你可以使用rsync和–fuzzy选项。 Fuzzy将在目标目录中查找一个类似命名的文件,并将其作为复制的起点,仅发送两个文件之间的差异。

举个例子,在这里,我将xwiki-enterprise-web-3.4.war复制到一个已经包含了xwiki-enterprise-web-3.2.1.war的远程目录中。

 $ rsync -av --fuzzy xwiki-enterprise-web-3.4.war example.com:Downloads/xwiki-enterprise-web-3.4.war sent 69065310 bytes received 74176 bytes 389518.23 bytes/sec total size is 138567168 speedup is 2.00 

您只会注意到文件实际需要传输的内容的大约一半。 如果这些文件更加类似于这个特定情况,那么更好的版本xwiki实际上要比旧的版本大26M。

 $ du -sh xwiki-enterprise-web-3.* 107M xwiki-enterprise-web-3.2.1.war 133M xwiki-enterprise-web-3.4.war 

而不是为什么不使用rsync或rdiff命令都是传输文件的快速工具。