20

作为最佳实践,我使用虚拟机进行开发——我想尽可能地优化我的虚拟机。我只安装了服务器 2003、IIS 和 Visual Studio 2008。您如何优化您的开发虚拟机,即您关闭了哪些服务等...

4

10 回答 10

23

与往常一样,没有一组普遍“正确”或“最佳”的建议。但是,这些是我的开发虚拟环境中运行良好的一些项目。

硬件提示


满满的回忆!

确定每台虚拟机需要多少内存以及主机需要多少内存(如果您同时在主机上运行)。将同时运行的所有 VM 的内存需求总量相加,确定最大 VM RAM 负载并添加主机负载。我建议至少有 512MB 的“填充”

例如,我需要大约 768MB 的主机操作系统(WinXP Pro SP3)和大约 1GB 的客户操作系统(WinXP Pro SP3 w/Visual Studio 2005/2008 和 SQL Server Developers Edition)。1024MB + 768MB + 512MB = 2.3GB

就个人而言,由于目前 RAM 非常便宜,我只是用 4GB(3.5 可寻址)将我的 32 位系统最大化。

为您的操作系统和虚拟机提供单独的主轴

有一个与您的操作系统磁盘分开的磁盘来运行您的虚拟机映像。这大大减少了 Host 和 Guest 之间的磁盘 I/O 争用。

注意:使用外部 HDD 将主轴分离会有所帮助,但请注意 - Firewire 和 USB 的延迟比 IDE、SATA 或 SCSI 更高!虽然 USB 2.0 和 Firewire 接口具有足够的带宽来实现最大磁盘吞吐量,但它们确实会为每个操作增加大量延迟。这在高磁盘事务、小文件访问情况(如 C++ 编译)中变得非常重要。我还没有机会在 eSATA 上运行一些测试,以了解它与内部 SATA 访问时间相比的性能如何。

使用访问时间短的磁盘

在开发过程中,会发生相当多的随机磁盘访问,尤其是在使用 C++ 等语言进行编译期间。为您的 VM 使用 7200 RPM 而不是 5400 RPM 驱动器可以减少访问时间,从而减少编译时间。使用 10,000RPM 或高端 SSD 可进一步减少这些时间。收益递减点取决于您环境的特定磁盘访问负载/模式。

主机提示


禁用虚拟机文件病毒扫描

告诉您的病毒扫描程序忽略您的虚拟机目录或 .vmdk 文件扩展名,这样它就不会不断地扫描您的虚拟机磁盘。

避免 CPU 争用

如果您一次运行多个虚拟机,或者您同时在主机和来宾操作系统中工作,那么在多核/proc 机器上为主机操作系统节省至少 1 个 CPU。例如,如果您正在运行两个虚拟机并且在主机操作系统中不做任何工作,那么主机上的双核处理器与单核虚拟机可能会为您提供最佳服务。

如果您正在运行单个虚拟机并且在主机操作系统上没有工作,那么如果虚拟机应用程序可以使用第二个处理器,那么运行双处理器 VM 可能会有所帮助。

如果您正在运行两台虚拟机,一台是单进程,另一台是双进程,您可能需要运行四核系统。

VMware 注意(其他虚拟化应用程序未确认):如果您为虚拟机提供多个处理器,它会等待两个处理器都可用,即使不使用它们也会保留它们。这可能会导致虚拟机之间或虚拟机与主机之间的严重争用。

客人小贴士


分配足够的内存

确保分配足够的 RAM 来满足虚拟机的需求

避免使用快照

除非确实需要,否则不要使用快照。与维护基于快照的虚拟机文件系统相关的磁盘 I/O 损失很大。

不要运行不必要的服务

如:

  • 索引
  • 系统还原
  • 错误报告
  • 无线零配置

不要运行安全软件

考虑不要在 VM 中运行防病毒、反间谍软件或防火墙软件。您必须在这里权衡安全性与速度的优缺点。对于许多人来说,如果他们感染了病毒,这不是问题,他们只需恢复以前的副本或快照。对于其他人来说,敏感信息的潜在暴露需要严格的安全策略,即使在 VM 内也是如此。

我会说,不在 VM 中运行防病毒或防火墙软件可能是 Windows 的 VM 经常感觉比其物理主机操作系统对应物“更敏捷”的第一个原因。

碎片整理!

不幸的是,在虚拟机配置中可能会在三个地方出现文件碎片:在客户操作系统的文件系统中,在虚拟机的虚拟机文件(例如 vmdk)表示中,以及在物理磁盘本身上的虚拟机文件。您对每个文件进行碎片整理的顺序很重要。

  • 首先,在客户操作系统中对文件系统进行碎片整理(例如,在客户操作系统中运行磁盘碎片整理程序或在客户操作系统中使用 JkDefrag 或 Defraggler 等工具)
  • 二、使用vmware-diskmanager等工具对虚拟机文件(如VMDK)进行碎片整理
  • 第三,对保存虚拟机文件的主机上的文件系统进行碎片整理(即在主机操作系统上运行磁盘碎片整理)
于 2009-04-24T16:38:18.353 回答
8

我关闭了文件系统索引器,节省了磁盘空间和 CPU 时间。

于 2009-03-11T09:00:35.933 回答
7

我总是在我的 Windows XP 虚拟 PC 上禁用“系统还原”。

于 2009-03-11T08:56:28.453 回答
7

从我的病毒防护中排除我的构建文件夹以进行访问扫描

这些是我在我的虚拟机中关闭的服务

  • 关闭关闭事件跟踪器
  • 关闭 c:\ 上的索引
  • 错误报告服务已关闭
  • 智能卡访问已关闭
  • TCP/IP NetBIOS 助手
  • 远程桌面帮助会话管理器
  • 远程注册表
  • 不间断电源供应
  • 视窗音频
  • 无线零配置
于 2009-03-11T09:26:33.470 回答
5

将磁盘映像放在外部 HDD(甚至 USB)上可以提高性能(特别是笔记本电脑)

于 2009-03-11T09:09:33.587 回答
3

这里有一篇关于虚拟机性能的好文章

它是专门针对 Sharepoint 虚拟机编写的,但也有很多普遍适用的技巧。

于 2009-03-11T09:04:13.430 回答
1

我在使用 VMware Server 时禁用了 Windows 页面文件。磁盘 IO 是与 VMWare Server 最薄弱的环节,没有什么比将虚拟化 RAM 分页到虚拟化磁盘文件更糟糕的了。给你的虚拟机足够的内存,这很好用。

此外,并非所有虚拟化解决方案在不同领域的表现都相同。VMware 非常适合 VM 映像的稳定性和移动性,但如果有时间,您可能想尝试其他一些解决方案。我发现更好的磁盘 IO 性能给了我更好的整体体验,所以我用 VMware 服务器更好的 CPU 性能(不幸的是,整体稳定性)换取了 VirtualBox 更好的 IO 性能。非免费的 VMware 版本可能要好得多,但我不知道。

我发现将磁盘映像放在单独的驱动器上并没有给您带来太多收益。很多人会争论这一点,它可以给你更多的性能,这取决于主机的其他情况,但对我来说这是微不足道的。我也尝试使用原始磁盘,但效果不如我希望的那样。

真正扼杀 IO 性能的一件事是在快照处于活动状态时运行。这在大多数实现中使用了写时复制策略,您可以预期磁盘性能会下降 20%。

于 2009-03-14T18:03:02.077 回答
0

我最近构建了一个 VM,并在使用NliteWindows Update Downloader进行安装之前就开始对其进行优化。NLite 允许您删除所有不需要的组件(mspaint、pinball、french 等),应用所有 Windows 更新,并调整注册表和服务设置。例如,您可以在首次启动时禁用系统索引器。如果您使用 Vista 或 2008 Vlite 也可用。

于 2009-04-02T20:52:25.783 回答
0

两个 SSD,一个用于主机的操作系统,一个用于 VM。

于 2010-09-27T15:29:40.723 回答
0

您可以使用 Quest 的这个免费工具来优化虚拟桌面。它关闭了一堆东西。

http://communities.quest.com/community/vworkspace/blog/2011/09/08/introducing-the-free-quest-vworkspace-desktop-optimizer

完全披露:我为 Quest 工作,但没有使用此工具。

于 2012-02-15T14:53:45.063 回答