什么限制了 scp 的性能?

mar*_*ark 14 networking bandwidth scp

我有两台通过 1 Gbit LAN 连接的 Debian Linux 机器。我可以使用原始 HTTP 文件传输来衡量这一点,wget它在任一方向上的传输速度约为 100MB/s。

当我现在使用 时scp,我得到的最大无压缩约为15MB/s-C根据内容,使用该标志启用压缩可让我达到高达50MB/s 的速度

尽管如此,这里似乎浪费了很多带宽。很长一段时间我都没有打扰,直到我真的不得不考虑一些非常大的日志文件传输,才意识到它scp是多么的慢。scp即使在公司环境中,我也很自然地使用,因为所有基础设施都是为它设置的。

是什么限制了 scp 的性能?由于加密,它是否受 CPU 限制?当我使用htop它时,它似乎没有使用多核 CPU,只有四个 CPU 中的一个达到了最大值。

有没有办法提高吞吐量?我有 HTTP 服务器和 samba 可用,但为了在 Linux 机器之间移动文件,我通常只使用 SSH,这就是我成长的方式。但这现在让我想到了,似乎我需要考虑其他大量数据的传输方式。

HTTP 仅用于 PHP/Java/whatever 中的特定应用程序,而 samba 用于某些特殊原因,我们需要从 Windows 机器访问。

Joo*_*ing 7

应该是加密吧。您可以尝试使用不同密码的 scp,例如:

scp -c arcfour src dest
Run Code Online (Sandbox Code Playgroud)

检查 ssh_config 手册页以获取可用密码。RC4 (arcfour) 是一种快速密码,但可能不如某些替代方法安全。


Jam*_*ger 6

部分原因可能与 OpenSSH 的内部实现有关。看看HPN-SSH以了解瓶颈的一个原因,以及可以解决它的 OpenSSH 补丁(如果您愿意从源代码修补和重建)。