Hyper V上的磁盘延迟高(平均磁盘写入时为20ms至100ms)

我在运行5个虚拟机的12 GB,i7服务器上运行Hyper V。 我觉得虚拟机的运行速度很慢,但内存消耗和CPU利用率都不值得一提,于是我启动了性能监控器,发现有两个指标看起来相当高:Avg。 光盘写入:40ms – 100ms平均 光盘读取:部分长达60ms

(请参阅屏幕截图: 性能监视器

我认为这些数字是相当高的,但我不是100%肯定的。 有人可以证实吗? 可以做些什么来减less延迟?

更新1:根据此页从Microsoft PhysicalDisk 监视磁盘使用情况 :%磁盘时间不应超过90%, 物理磁盘:当前磁盘队列长度不应超过1.5到2.但是,我的服务器上的值超过这些数字(红色是队列长度)剧烈。 我在我们办公室的本地服务器上检查了几乎相同的configuration和负载(我不确定磁盘型号/制造商,但它是一个零售PC)相同的指标。 这里%磁盘时间只有20到40!

在这里输入图像说明

如果在你最喜欢的咖啡店里只有一个咖啡师工作,并且你有四个同事出现,平均每个人都需要更长的时间才能收到一杯饮料。

同样,共享单个旋转磁盘时,虚拟服务器的性能不佳。 原因很简单:磁盘延迟是大多数计算应用程序的主要性能瓶颈! 当你在多个虚拟机之间共享一个单独的磁盘时,每个虚拟机都必须等待磁盘读/写速度足够慢,即使服务器只有一个单独的驱动器。

典型的小型非群集Hyper-V服务器磁盘configuration示例:

Disk Configuration Function C: RAID-1 mirror (2 disks) Operating system D: DVD-ROM drive Installation discs E: RAID-10 array (4+ disks) Hyper-V Guests 

当Hyper-V主机拥有众多的guest虚拟机,承载繁忙的SQL数据库服务器,或者是Hyper-V群集的一部分时,您可能需要开始查看DAS或SAN选项,这些选项可以同时为多台计算机提供数十个物理磁盘。 在一个典型的小型企业Hyper-V环境中,SAN / DAS解决scheme往往是矫枉过正的,在这种环境中,很less超过Server 2008 Enterprise许可证中包含的4个访客服务器操作系统。 适合典型的1U或2U服务器机箱的6-8个驱动器就足够了。

固态存储(和/或混合存储选项,如英特尔新兴的快速存储技术)的成本下降最终可能会改变这些规则,但是当链接到单个旋转磁盘时,您不能指望多个虚拟服务器执行良好。

不使用RAID的其他潜在后果(包括不必要的停机时间,以及丢失自最近一次备份以来写入的所有数据的可能性较高)比性能影响更为重要。 但是,这些问题不在您原来的问题范围之内。

如果您没有提供关于您正在使用的存储设备以及configuration方式的信息,则很难回答。 在最糟糕的情况下,您可能在操作系统所在的同一物理磁盘上运行5个虚拟机,这样会降低速度。

另外,了解这些虚拟机在磁盘I / O方面的实际操作将有助于诊断您的问题。