如何比较FTP,FTPS,SFTP和SCP的传输速率?如何通过测试比较它们?
如何比较FTP,FTPS,SFTP和SCP的传输速率?如何通过测试比较它们?
Answers:
如果你有一个快速的广域网,你会发现,sftp
和scp
大约相同的速度,这是缓慢的。它们都遭受基础opensh中的性能问题。对于现代硬件,这不是由于加密开销,而是由于openssh实现的问题-它实现了自己的内部窗口机制,该机制会中断快速连接。
这些问题在长距离(较高延迟)连接上变得更加明显,但是即使在LAN上,我也遇到了速度慢的问题。
这些都有详细记录,并且提供了修补程序来解决此问题。修补连接的任何一端都可以提供帮助;理想情况下,您会修补两端。有关更多信息和补丁程序,请参阅匹兹堡超级计算机中心的高性能SSH。
顺便说一句,一旦解决了开窗问题,加密开销也可能成为一个问题。补丁程序也对此进行了修复。
同时,您会发现这ftp
很不安全;它以纯文本形式发送密码。
ftps
我认为将ftp协议包装在SSL中。它可能比未修补的SFTP / SCP更快。
最后一点:根据我的经验,WinSCP客户端(至少有时)非常缓慢。我不知道为什么,但是根据他们的常见问题,我不是唯一遇到此问题的人。因此,如果您从Windows进行浏览,而且速度似乎很慢,请尝试使用其他客户端。即使使用未打补丁的openssh服务器,使用其他客户端也可以做得更好。不幸的是,我不确定哪个是好的客户。
通常,所有协议将执行大致相同的操作。网络或磁盘的速度比协议更容易受到限制。
较旧版本的OpenSSH(SFTP / SCP)使用固定的窗口大小,这将限制高延迟网络(例如跨大西洋)的速度。有一个补丁集可以解决此问题,称为HPN(高性能网络),它包含在大多数最新版本的OpenSSH中。
如果遇到千兆位或更快的LAN链接以及CPU速度较慢的情况,则SFTP / SCP可能会遇到瓶颈。您将能够知道,因为ssh / scp / sftp进程将在发送或接收主机上使用100%的cpu。如果您使用的是较新版本的OpenSSH(6.4+),则可以启用线程版本的AES密码,该密码将能够使用多个内核进行加密,并且不太可能受CPU(而非磁盘)的限制或网络带宽。
如果您同时控制发送和接收方,则OpenSSH 6+还具有可选的“ NONECIPHER”模式。这使用常规的加密/密钥等登录到远程计算机,但是随后下降到未加密的连接以进行实际文件复制。这将消除该CPU开销。NONECIPHER内置了一些安全措施,可以防止您获得未加密的外壳。
最后,尽管旧版本的ssh确实存在高延迟链接的问题,但协议不应成为速度限制。
基于加密开销,我想说普通的FTP可能比其他协议的性能稍好,但是可以忽略不计。我会先使用提供所需安全性的协议,然后再考虑吞吐量。
话虽如此,您必须设置一个测试才能找到真实的数字。以上都是我的看法。如果要在本地测试性能,请在网络上设置服务器。如果最终用途是通过Internet,请从外部主机进行测试。
像往常一样,谷歌掌握了答案,
FTP v / s SFTP v / s FTPS,
其中说FTP> FTPS> SFTP
FTP在其他人的测试中似乎也比SCP更快(http://www.lysesoft.com/support/forums /viewtopic.php?f=5&t=542),但我建议您自己尝试一下。
因此,只需在网络上的任意随机设备上设置SCP和FTP,然后运行典型的文件传输并查看两者都需要多长时间