dd over ssh 网络吞吐量性能较差

dd over ssh 网络吞吐量性能较差

我正在通过本地 ssh 连接将一个 ec2 实例的原始块复制到另一个 ec2 实例,使用较大的块大小16MB

ssh -i ~/.ssh/id_rsa [email protected] 'sudo dd if=/dev/xvda1 bs=16M' | dd of=./monolithic.image.raw

当它启动时,我的速度超过 700 Mbit/s......非常好,但突然在复制大约 30 秒后,速度急剧减慢并减少到小块数据:

在此处输入图片描述

你知道为什么吗?你知道如何提高网络吞吐量并保持一致吗?

答案1

使用 ssh 来做这件事是出了名的糟糕,除非你使用 ssh 和 sshd 的自定义版本,比如 HPN-SSH,它支持跨多个核心的数据流加密……否则你可能会发现一个系统或另一个系统上的 CPU 的一个核心已经达到最大值。使用“top”或“htop”检查。后者会使问题变得明显。

如果实例是 t2 级,则性能会随着时间的推移而下降,因为所有加密开销都会耗尽您的 CPU 积分余额。也请检查这一点,尽管性能下降似乎不太可能如此迅速地开始——从较高的初始余额开始耗尽 CPU 积分需要几个小时。

另一个可能的原因是您的源卷从未正确预热过。如果源卷曾经从快照中恢复过,则尤其如此。

说到快照,当然,EBS 快照是进行块复制的最简单方法。

相关内容