为什么通过 WinSCP 从 Hyper-V VM 下载到主机的速度开始时很快,然后又减慢到每秒千字节?

为什么通过 WinSCP 从 Hyper-V VM 下载到主机的速度开始时很快,然后又减慢到每秒千字节?

我创建了一个虚拟机(第二代)。我安装了 Ubuntu Server 20.04。它通过外部交换机连接到我的物理网络适配器。然后我使用 WinSCP 连接到它以下载 2GB ISO 文件,这需要很长时间。我注意到从我的 Azure 服务器通过 WinSCP 下载时也出现了同样的行为。

下载开始时很快,我的速度大约是 50MB/s,然后就降到 100kB/s。有时在下载过程中,我会在一段时间内获得较高的速度,然后又降下来。

这是 WinSCP 错误吗?还是什么?这甚至不是真正的网络连接,而是虚拟机和主机之间的传输,应该非常快。我可以在 1 分钟内使用 torrent 客户端通过互联网下载 ISO。从我的虚拟机下载相同的 ISO 需要 20 多分钟才能下载。

VM 有 8 个核心和 4GB RAM。我的主机有 16 个核心和 16GB RAM。我甚至没有看到下载过程中资源使用率过高。我的主机和 VM 在下载文件时没有做任何特殊的事情。

有没有更快的方法在 Ubuntu Server VM 和 Windows 主机之间传输文件?

我究竟做错了什么?

答案1

VM 和主机实际上使用的是相同的硬件,甚至相同的磁盘(如果这是您唯一的磁盘)。此传输只能与本地文件复制一样快,并且由于涉及各种虚拟化层而产生一些开销 (*)。它肯定不会从更快的网络连接中获得任何好处。

(*) VM 正在从虚拟磁盘(实际上是主机系统上的文件)读取数据,然后加密数据并通过虚拟网络适配器将其发送到主机上的另一个虚拟网络适配器,后者随后将解密数据并将其写入同一磁盘。这可以获得相当慢的。

相关内容