我有两台Debian Linux机器通过1 Gbit LAN连接。 我可以测量这与一个原始的HTTP文件传输wget在任何方向获得大约100MB / s。
当我现在使用scp ,我得到的最大值是15MB / s左右。 使用-C标志启用压缩function可以让我根据内容高达50MB / s 。
不过,这里似乎浪费了很多带宽。 我没有打扰很长一段时间,直到我真的不得不考虑一些非常大的日志文件传输,只是意识到奇怪的慢scp是。 即使在公司环境中,我也很自然地使用scp ,因为所有的基础架构都是为它设置的。
什么限制了SCP的性能呢? 是否由于encryption而限制CPU? 当我使用htop ,似乎没有使用多核CPU,只有四个CPU中的一个最大。
有没有办法提高吞吐量? 我有HTTP服务器和samba可用,但为了在Linux机器之间移动文件,我通常只使用SSH,这就是我长大的方式。 但现在这让我思考,似乎我需要考虑其他的大量数据传输方式。
HTTP仅用于PHP / Java /中的特定应用程序,因为某些特殊原因需要使用samba,所以我们需要从Windows机器访问。
可能是encryption。 你可以尝试不同的密码,例如:
scp -c arcfour src dest
检查ssh_config手册页以获取可用的密码。 RC4(arcfour)是一种快速密码,但可能不如其他一些替代品那样安全。
部分原因可能与OpenSSH的内部实现有关。 看一下HPN-SSH ,解释瓶颈的一个原因,以及可以解决它的OpenSSH补丁(如果你愿意补丁和从源代码重build)。