rsync 与 ssh 性能对比

rsync 与 ssh 性能对比

我正在使用 rsync 通过 ssh 将数据从 Windows 备份到 Linux。这会在服务器上为每个连接创建 1 个 rsync 进程,因为这是通过 ssh 进行的。每个 rsync 连接以 1 mbps 运行。你知道在 CPU 达到 100% 之前,我在 2Ghz - 4G RAM 机器上可以建立多少个这样的连接吗?我在网上找不到任何关于这方面的有用信息。

洛朗

答案1

Rsync 确实不是线性扩展,尤其是当它们不是同时启动时。最密集的部分是初始位,它读取目录并同步文件列表。最新版本的 rsync 会绕过此步骤,因此您只剩下校验和。如果 CPU 使用率成为问题,您也可以禁用此部分。

即使您开始大量使用带宽,SSH 方面通常也不会使用太多 CPU。它经过高度优化,不会占用太多空间。作为记录,我每秒通过 ssh 加密隧道推送 45MB 数据,而盒子上的任何核心都没有闪烁。由于将数据推送到 raid 阵列的磁盘访问,负载略有上升。

答案2

我会开始做一些规模测试。启动一个进程,在任务管理器中检查其 CPU 和内存负载。并行运行四个进程,对每个进程执行相同的操作。假设这个规模呈线性增长,您应该对何时开始达到 CPU/RAM 限制有一个大致的了解。如果它不是线性增长,您需要获取更多数据点并进行计算。

答案3

如果您可以设置客户端不同时进行 rsync,那么数量会相当多。

但我不会担心 CPU/RAM,因为我认为瓶颈是硬盘的带宽。

无论如何,请遵循 sysadmin1138 的建议,并使用类似这样的简单工具密切关注资源格瑞尔姆(可以同时显示 CPU、RAM、硬盘和网络)。

答案4

正如其他人所建议的,解决这个问题的最好方法就是进行测试。

不过,我不认为在系统因您施加的 IO 负载而变得无法使用之前,您会达到 CPU 或 RAM 的极限。

我也不相信它会线性扩展,我预计会达到运行实际额外的 rsync 使其变慢的程度。

如果你真的想测试一些东西,我会测试一下在比逐个运行更慢之前你可以同时运行多少个。在普通的 SATA 磁盘上,我预计这个数字会少于 12 个。

相关内容