我每天都使用 VMware,尽管我有一台拥有 4GB RAM 的全新机器,但它的运行速度仍然很慢。
我如何加速我的 VMWare 软件?我知道一个瓶颈是我的硬盘,它是一台笔记本电脑,所以硬盘没有最快的 RPM。
- 我在 VMware 中运行 Ubuntu Linux。
- 我正在使用 Eclipse、python、MySql 和一些其他轻量级程序。
- 该机器是配备迅驰 2 处理器的联想 T400。
- 我正在运行 VMWare Workstation 6.5。
答案1
始终、始终、始终预先分配您的 VMDK!此外,如果可以,请对驱动器进行分区,以便虚拟机拥有自己的分区,尽可能靠近驱动器的开头(物理上朝向盘片的外部),靠近将要写入的操作系统部分(/var、swap、/home)。如果主机操作系统和 VMDK 都在盘片的一半上,那么您已将大多数操作的寻道时间缩短了一半(静态文件只读取一次,然后保存在内存中 - 充分利用这一点!)。
根据您的使用情况,将 CFQ 更改为预期或截止 I/O 调度程序可能会提高性能。此外,请查看以下内核设置以优化 RAM 的使用方式:
- /proc/sys/vm/swappiness
- /proc/sys/vm/vfs_cache_pressure
- /proc/sys/vm/dirty_background_ratio
- /proc/sys/vm/dirty_ratio
- /proc/sys/vm/overcommit_ratio
这些用于您的 I/O:
- /sys/block//队列/调度程序
- /sys/块//队列/
答案2
您的虚拟机将在 IO 上激烈竞争。确保不导致 IO 匮乏,尤其是读取时。当某个进程(包括虚拟机)无法读取数据时,该进程将一直等待,直到读取到数据为止。能够读取数据非常重要;比写入数据更重要,因为写入数据无论如何都会首先进入缓冲区。您会在性能监控工具(如各种 *tops)中看到高 iowait 值。
为了解决这个问题,我同意前一位发帖人的建议,选择另一个调度程序。你必须尝试哪一个最适合你的工作量,但 deadline 听起来对你来说是个不错的选择。
我很好奇您同时运行了多少个虚拟机。
几个月前,我为某人构建了一个 FreeIPA 设置,服务器和客户端都安装在我的 VMware Workstation VM 上。速度慢得要命。最近,我开始使用 KVM,我的性能问题得到了解决。KVM 使内核本身成为一个虚拟机管理程序,这意味着虚拟化工作发生在 ring 0 中,而不是 ring 3 中。这意味着性能大幅提升。我建议你试一试。
答案3
加速虚拟机的一个好方法是将它们放在单独的物理磁盘上。由于您是在笔记本电脑上运行,因此您可能需要考虑获取 eSATA ExpressCard 控制器。(我不会使用 USB,因为带宽不够)。
我在我的开发笔记本电脑上遇到了类似的问题,在转移到 eSATA 设置后,我非常高兴。
当我从我的单启动盘运行所有程序时,我发现运行某些虚拟机时性能下降非常明显。运行 WinXP 的虚拟机似乎运行良好,但当我启动 Server2008 虚拟机时,性能就会明显下降。切换到 ExpressCard/eSATA 设置后,我能够毫无问题地运行所有虚拟机。
使用 eSATA 的另一个优势是,您可以获得全尺寸的外部机箱,从而显著降低驱动器成本并增加您的选择。例如,您可以将 10k rpm 驱动器放入其中以获得一些非常不错的 IO,或者只是拥有使用标准笔记本电脑配置无法获得的 TB 级空间。
不过,需要注意的一点是 ExpressCard 总线在笔记本电脑中的具体实现方式。出于某种原因,我的设置峰值为 100Mb/s,而我知道驱动器本身至少能够达到 200Mb/s。
答案4
有些计算机在 BIOS 中有一个虚拟化选项。打开它会有所帮助。我知道我的电脑没有,但我同事的电脑有,而且这有很大的不同。