一段时间以来,我一直遇到 VMware Fusion 的问题,虚拟机(运行 Windows)最初运行良好,但一段时间后(最好是几个小时)就会变得很慢。它太慢了,甚至打字时都会有延迟。
该问题不仅限于一台虚拟机:我有多个 Windows 7 虚拟机出现同样的问题。
任何有助于找到此问题根源的提示都将不胜感激。以下是配置详细信息以及我迄今为止尝试过的操作。
配置:
- OS X 10.9.2
- VMware Fusion 6.0.2
- MacBook Pro(2012 年中)英特尔酷睿 i7 2.3Ghz、8GB RAM、Apple SSD
- 运行 Windows 7 的虚拟机,8 核,4GB RAM,SATA 磁盘(未预分配)
- VM网络:桥接
迄今为止进行的更改(优化)
Windows(来宾):
- 禁用所有非必要的 Windows 服务(例如 Windows Search、媒体等)
- 禁用 NTFS 访问时间修改
- 已禁用 8.3 文件名
- 残疾人航空
- 配置性能设置为最棒的表演
Mac(主机):
- 已禁用节能
- 禁用显示适配器的自动切换
VMware:
- 将虚拟机从外部 USB3 磁盘移至内部 SSD
- VM 兼容性设置为 VMware 6(最新可用)
- 将 VM HD 控制器从 SCSI 或 IDE 升级到 SATA
- 将虚拟机硬盘缓冲设置为已启用
- 已禁用故障排除(设置为没有任何)
- 删除了 appleListCache 文件夹并用虚拟文件替换它
更新:
我向 VMware 创建了一个支持请求以彻底解决此问题,并收到了以下两个额外操作以供尝试:
- 重新安装 VMware 工具
通过执行以下步骤将 VMware 从 OSX 中的 AppNap 功能中排除:
- 关闭所有虚拟机并退出 Vmware Fusion。
- 转到“应用程序文件夹”并右键单击“VMware Fusion”
- 选择获取信息
- 选择“防止应用程序休眠”选项。
- 启动虚拟机并重新检查问题。
更新 2:
除了上述操作之外,VMware 支持还要求我执行以下操作:
- 降低分配给虚拟机的 CPU 核心数量— 我的 MacBook Pro 有 8 个核心,其中 VMware 建议只为 VM 分配 2 个。
- 降低分配给虚拟机的 RAM— 我总是分配尽可能多的 RAM,只留出足够的空间给 OSX。VMware 建议将其降低到 2GB。
- 禁用共享文件夹功能— 我通常在主机和客户操作系统之间共享几个文件夹,以便于文件交换。
虽然我并不指望这些改变会带来什么不同(尤其是降低分配给客户操作系统的资源),但到目前为止我尝试过的虚拟机都运行稳定,没有任何实际故障,即使是从 USB3 外部 WD 磁盘运行时也是如此。
答案1
我有同样的问题,但这些解决方案并没有解决我的问题。不过我找到了一个博客文章从artykul8,修复后解决了我所有的问题!
http://artykul8.com/2012/06/vmware-performance-enhancing/
调整:禁用内存交换文件 .vmem 文件
mainMem.useNamedFile = "FALSE"
不幸的是,此参数不适用于 VMware Player,因为它始终会创建虚拟机的完整内存交换文件。对于 Mac 和 Linux 上的 VMware Fusion,mainMem.useNamedFile
您必须设置mainMem.backing
标志。
mainMem.backing = "swap"
调整:选择正确的磁盘控制器并指定 SSD
而不是最新的SATA AHCI控制器选择LSI 逻辑 SAS带有 SCSI 磁盘的控制器(适用于 Windows 客户操作系统)或光伏系统集成对于其他类型的操作系统。不幸的是,在 VMware 上,SATA AHCI 的性能是三种控制器中最低的,并且 CPU 开销最高(请参阅末尾关于该主题的参考资料)。除了选择正确的控制器外,如果您的主机磁盘是 SSD,您可以向客户操作系统明确指定磁盘类型为 SSD。
scsi0:0.virtualSSD = 1
调整:禁用虚拟机的日志文件
logging = "FALSE"
或者,如果您需要的话,您可以指定不同的位置来存储日志文件:
log.filename = "c:\Windows\Temp\vm1.log"
调整:其他磁盘和内存 I/O 性能优化
禁用内存修剪:
MemTrimRate = "0"
禁用页面共享:
sched.mem.pshare.enable = "FALSE"
禁用缩减内存分配:
MemAllowAutoScaleDown = "FALSE"
调整:禁用快照
如果您不使用快照并且希望进行完整备份,请禁用快照:
snapshot.disabled = "TRUE"
调整:禁用 Unity 模式
Unity 可能是运行虚拟桌面操作系统的一大功能,但它并不是虚拟化服务器操作系统最有用的功能。启用 Unity 的一个令人讨厌的迹象是GuestAppsCache
或缓存包含大量文件和子文件夹的文件夹。为了为您的虚拟机禁用它,请添加以下几行:
isolation.tools.unity.disable = "TRUE"
unity.allowCompositingInGuest = "FALSE"
unity.enableLaunchMenu = "FALSE"
unity.showBadges = "FALSE"
unity.showBorders = "FALSE"
unity.wasCapable = "FALSE"
答案2
我的 VM 客户机也遇到了同样的问题。(顺便说一下,在 10.8 上的 VMWare 5.x 中也遇到了同样的问题)。解决这个问题的方法是禁用 VM 硬盘缓冲。这似乎占用了系统的所有可用 RAM 来缓冲磁盘数据(您也可以在活动监视器中监视这一点)。但是,当其他系统资源需要时归还 RAM 似乎不是 VMWare 的强大功能之一。
自从我禁用了此功能后,我就不再遇到 VM 客户机速度变慢的问题。
答案3
在我将 OS X 升级到 OS X 10.10.2 之前,我也遇到过类似的问题。
我发现,当我在 OS X 中更改显示设置以使用“默认显示”分辨率时。然后我在 VMware 中取消勾选“自动调整 Windows 中的用户界面大小”,并勾选“使用 Retina 显示屏的全分辨率”,但这确实为我的 Windows 界面提供了 2560 x 1600 的分辨率,在 13 英寸的屏幕上非常小。但不再有反应迟缓的问题了。
Windows 7 Pro 和 Windows 8.1 Ent 的行为相同
之后,我使用了盖子关闭的外接屏幕以及外接键盘和鼠标,效果非常好。
不知道这是否有助于您解决问题,但也许您的问题与屏幕有关。