Windows 7 通过磁盘缓存损害了 VMWare 的性能?

Windows 7 通过磁盘缓存损害了 VMWare 的性能?

我们在 Dell Precision T3500(Xeon E5630 @ 2.53GHz,4GB RAM)上运行 Windows 7 Enterprise 64 位 SP1。此外还有最新的 VMWare Workstation 7.1.4。在 VM 中运行的是 Windows XP Professional 32 位 SP3。VMWare 配置为为客户机分配 2GB RAM。

在虚拟机内执行几乎任何操作都非常慢;即使滚动文本文件也需要几秒钟,并且磁盘活动非常明显。快速检查 Windows 7 主机上的任务管理器和资源监视器显示,VMWare 分配了相当大一部分虚拟内存,但我认为它们都被分页了,当我开始滚动文本文件时,我很快就达到了每秒 140 个硬故障的速度并保持在那里。

在运行 Windows XP 主机的更古老的硬件(奔腾 4 老式)上,旧版本的 VMWare 从未出现过这些特殊症状。有没有办法让 Windows 7 不那么积极地将 VMWare 的内存分页出去,或者有没有解决方案可以减少所需的磁盘分页量?完全有可能我只是配置错误,但我没有摆弄太多设置。任何建议都将不胜感激,谢谢。

答案1

请参阅此处的最后一条记录http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1008885

经过此更改后,我发现虚拟机性能有了巨大改善。只需确保您的主机上有足够的内存即可。

编辑虚拟机设置以通过使用更多主机内存来减少 I/O 使用率:

将这些设置添加到虚拟机可以减少硬盘上的 I/O 负载,但是这些调整需要主机上的额外内存。仅当主机上有足够的可用内存来容纳分配给虚拟机的所有内存时才添加这些设置,否则可能会导致内存不足的情况,从而降低所有正在运行的虚拟机的性能或可能影响主机操作系统。请谨慎使用这些设置。
在受影响的虚拟机关闭时打开其 .vmx 文件。使用文本编辑器将以下行添加到文件。有关详细信息,请参见编辑 VMware Workstation 和 VMware Player 虚拟机的 .vmx 文件 (2057902)

注意:如果您使用的是 VMware Server,则可能需要重新启动 VMware 授权服务 (vmware-authd) 以使更改生效。

MemTrimRate = "0" 
mainMem.useNamedFile = "FALSE"
sched.mem.pshare.enable = "FALSE" 
prefvmx.useRecommendedLockedMemSize = "TRUE"

注意:如果您使用的是 Linux 主机,请使用以下条目代替 mainMem.useNamedFile = "FALSE"。mainMem.useNamedFile 条目仅适用于 Windows 主机。

mainmem.backing = "swap"

答案2

Win7 中是否正在运行病毒扫描程序?可能会费力地即时扫描 VMDK 文件。

就像 zippy 所说的那样,vmtools 可以做很多事情,但如果尚未安装,情况应该不会像您描述的那么糟糕。vmtools 所做的一件事是增加内存,让 VMware 知道哪些是可以安全换出的,并防止 Windows 换出 vmware 真正使用的内容。

哦,XP 中的 Windows Search 4.0 在 VM 中可能会发疯。它可能会误以为系统有 99% 处于空闲状态并运行索引。

答案3

编辑:让我们从主机开始。您是否在 BIOS 中启用了虚拟化扩展?您是否安装了最新的芯片组和 Intel RST 驱动程序?驱动器上启用了磁盘缓存?VMware Workstation 的运行方式与 Windows 上的任何其他程序一样,因此您希望主机系统尽可能快。

接下来,减少 XP VM 使用的 RAM 量并将其降至 1GB。我曾经遇到过这种情况,在具有 4GB 的 PC 上为 VM 分配 2GB 会压垮 VM 和主机。可能您可用的 RAM 比您想象的要少。

如果您有备用的 T3500,请在其上安装 Windows XP + VMware Workstation,然后尝试从其运行 VM(运行与旧 P4 机器相同的设置,硬件除外)。如果它运行缓慢,那么您就会知道这是 T3500 上的硬件问题。

最后,您可能希望联系 VMware 支持。至少您可以告诉老板您正在尽一切努力解决该问题。

您是否在虚拟机中安装了 VMware Tools?如果没有安装,会导致性能下降和视频/鼠标延迟。

答案4

将 mainmem.backing = "swap" 添加到该虚拟机的 .vmx 文件中。

相关内容