在Hyper-V上运行的Windows 7开发VM上的IO缓慢

时间:2015-04-06 16:11:40

标签: visual-studio-2013 io virtual-machine windows-7-x64 hyper-v

我正在运行一个复杂的中等复杂的视觉工作室构建,通常需要大约10分钟才能在运行在合适硬件(8Gb内存,2.7 GHz i7,SSHD)上的非虚拟机上完成。当我在运行Hyper-V / Server 2012的Windows 7客户机上运行构建时(在精度5810上),运行需要一个多小时。此外,在非虚拟化中运行构建时,大多数构建的主要瓶颈是cpu。在Windows 7虚拟环境中运行构建时,瓶颈是IO。

我会发布资源监视器的图片,但是由于这是一个全新的帐户,所以不会授予我访问权限。无论如何 - guest虚拟机和主机的cpu和内存并不表示正在进行任何密集处理,但是IO非常高。队列长度在10到50之间稳定运行。每秒读取大约3 MB,而每秒写入8-10 MB。物理磁盘的活动时间固定为100%。

运行一个Ram磁盘大大减少了这里的时间(到6-8分钟),但是不实用,因为我不能定期专注于必要的内存。

关于我的队列长度如此之高和/或如何提高性能的任何想法?

1 个答案:

答案 0 :(得分:1)

IO重型应用程序/进程始终受VM影响。为了进行适当的比较,有助于将主机操作系统上的构建时间知道到存储客户机操作系统VHD的相同物理卷。如果主机操作系统只有一个物理磁盘,则会受到性能损失,应在专用驱动器上创建客户机操作系统卷(即与程序,操作系统和其他文件不同的驱动器。)

您可以尝试在Hyper-V管理器中增加分区/计算时间(以便为您的VM提供最大的计算时间),但我怀疑这会对IO造成太大影响。

您还可以尝试使用未映射到主机操作系统的专用物理驱动器(Fx。一个SSD)(如果您尝试,主机操作系统和客户操作系统都将访问卷并最终损坏分配表。)这可能会产生一些改进,因为存储卷是物理的(而不是让客户操作系统通过委托访问VHD /等的虚拟化堆栈执行。)

HTH,有兴趣听听您的结果/调查结果,因为我们在此测试中进行了大量的虚拟化,但仍未遇到此问题。