我在主机(Windows 7)上安装了总共 36 GB 内存(4x8 GB + 2x2 GB),并使用 ImDisk 创建了一个 32 GB 的 ramdisk 并使用 NTFS 文件系统对其进行了格式化。
然后我将虚拟机(VMware Workstation 格式)文件夹(包括.vmx
、.vmdk
等)复制到新创建的 RAM 磁盘。
然后我尝试在 VMware Workstation 中启动它。
让我吃惊的是,性能并没有比以前更好。启动 Windows 7 VM 所花的时间几乎相同。
我检查了 Windows 7 主机中的资源监视器,CPU、磁盘和网络的统计数据都比较正常。在客户机操作系统启动时,内存报告了 3000+ 个硬故障/秒,然后在客户机启动后降至 0。
对这个问题有什么想法吗?我曾以为在这种情况下 ramdisk 的性能会比物理磁盘更好。我错了吗?
答案1
您没有提到您的 RAM 是如何分配的。如果 VM 太小,则会导致分页活动,这可能会在 VM 中显示为页面错误。考虑到这可能会在您从交换空间换入和换出时保持 CPU 负载(如果它在 RAM 磁盘中,您可能不会看到太多主机 IO,主要是 VM IO)
答案2
我猜想 VMWare 无法处理这种速度,因为该程序位于您的硬盘上。当您将页面文件放在 ramdisk 上并确保进行注册表编辑以在关机时清除页面文件(以防止页面文件错误 - 查找不再存在的内容)时,您应该会看到性能提升(在我的情况下响应更快)。页面文件在 ramdisk 初始化之前加载。
答案3
您是否检查过 RAMdisk 是在虚拟内存还是物理内存中创建的?虚拟内存模式将使用交换文件,因此这样做毫无意义。
您可以在 imDisk 的配置选项卡中检查这一点,查看“映像文件”。如果它指示“虚拟内存”,则它是在交换文件中创建的。当您看到“物理内存”时,它是直接在内存中创建的。
此外,VM 文件非常大,因此您需要增加与 VM-Drive 块/群集大小相匹配的块大小/群集大小。
答案4
您确定 VMWare 不使用物理硬盘上的虚拟磁盘吗?VMWare 有时倾向于使用完整路径。重命名您的 VM 在磁盘上所在的目录(临时),然后 VMWare 将向您显示选择是否移动或复制机器的选项,当然选择复制。
之后,如果它不起作用,它可能取决于 VMWare 的模拟属性/功能。您可以尝试 VirtualBox 进行更改。我希望您在 VMWare 中使用 SCSI 而不是 IDE 模式?