我有一台 HP Proliant DL385 G5p 服务器,我用它来通过虚拟机管理程序上的 VM 托管个人 Debian 9 文件服务器。此 VM 有自己的 1Gb/s 以太网连接到相同速度的交换机,我的普通 PC 也连接到该交换机。这三个设备都能够以 1Gb/s 的速度运行。
我之前使用 Debian 直接安装到服务器磁盘,其余网络也是如此,并且可以实现接近广告宣传的 1Gb/s 的传输速度,但是,自从我开始在 VM 上运行文件服务器后,在顺利的情况下,传输速度大约在 5MB/s(40Mb/s)范围内。
我用来从我的 PC(运行 Windows 10)传输文件的软件名为“SFTP Net Drive”,它允许我从 Explorer 中查看文件服务器的内容(我不想每次都使用不同的软件工具连接到服务器,因为 Windows 不支持 SFTP)。当我在没有虚拟机管理程序的情况下直接在磁盘上运行服务器时,我使用了一个名为“WinSCP”的程序,它允许通过同一网络同时进行多个(最多 9 个)传输。这将使 1000Mb/s 连接饱和,除了传输非常小的文件(小于 1KB)时,我不会看到任何较慢的速度。
我使用 IPerf 测试了从我的 PC 到服务器的连接(反之亦然),连接速度非常接近应有的速度,~1000Mb/s。我还测试了服务器上的磁盘写入速度,但它们似乎也运行良好(我认为大约是 6000MB/s,但我记不太清楚。也不记得我用什么工具测试的)。RAID 5 中有 4 个 72GB 的物理磁盘,虚拟机管理程序将其解释为一个逻辑驱动器。然后,虚拟机管理程序为虚拟机分配此驱动器的另一个逻辑分区,该分区可能可以使用 LVM 再次拆分 - 在我的情况下由 Debian 拆分。(不要认为您需要所有这些信息,但它们可能会有用)。
考虑到服务器之前运行良好,我相信可以安全地假设这是一个软件问题或配置错误,可能是在 Windows 方面。速度缓慢的一个可能解释可能是 Windows 似乎只能使用 SFTP Drive 一次传输一个内容?任何帮助解决并纠正这个问题的帮助都将不胜感激。
编辑:好的,我发现了另一个奇怪的事情,当我使用以前使用的软件 WinSCP 将文件传输到服务器时会发生这种情况。在建立所有 9 个同时连接后,将一些音乐文件传输到服务器(每个约 50MB,大约 300 个)时,传输速率达到 110MB/s 的峰值,并保持了大约 20 秒。然后它迅速回落到 20-30MB/s 并保持在那里直到传输完成。这让我相信有某种缓冲区,一旦饱和,就会减慢传输速率以跟上写入磁盘的请求?我不确定这是否有任何意义,但对我来说这似乎合乎逻辑。
编辑 2:将文件从服务器移动到我的电脑时,传输速度同样很差,根据 Windows,大约为 3-8MB/s。
答案1
您是否对虚拟机的磁盘速度进行了基准测试。在我看来,尤其是如果您使用 QCOW2,速度可能会很慢:https://serverfault.com/questions/407842/incredibly-slow-kvm-disk-performance-qcow2-disk-files-virtio 或者https://serverfault.com/questions/675704/extremely-slow-qemu-storage-performance-with-qcow2-images 只需谷歌一下“slow qcow2”就可以看到,