作为最佳实践,我使用虚拟机进行开发 - 我想尽可能地尝试优化我的VM.我所安装的只是服务器2003,IIS和Visual Studio 2008.您如何优化您的开发虚拟机,即您关闭哪些服务等...
与往常一样,没有一套普遍"正确"或"最佳"的建议.但是,这些是我的开发虚拟环境中运行良好的一些项目.
硬件提示确定每个虚拟机需要多少内存以及主机需要多少内存(如果您同时在主机中运行内容).添加将同时运行的所有VM的内存总要求,并确定最大VM RAM负载并添加主机负载.我建议至少有512MB的"填充"
例如,我需要大约768MB的主机操作系统(WinXP Pro SP3)和大约1GB的客户操作系统(WinXP Pro SP3 w/Visual Studio 2005/2008和SQL Server开发人员版).1024MB + 768MB + 512MB = 2.3GB
就个人而言,由于RAM目前非常便宜,我只用4GB(3.5可寻址)来扩展我的32位系统.
将磁盘与操作系统磁盘分开以运行虚拟机映像.这大大减少了主机和来宾之间的磁盘I/O争用.
注意:使用外部硬盘将主轴分开可能有所帮助,但要注意 - Firewire和USB的延迟比IDE,SATA或SCSI更高!虽然USB 2.0和Firewire接口具有足够的带宽以实现最大磁盘吞吐量,但它们确实为每个操作增加了大量延迟.这在高磁盘事务,小文件访问情况(如C++编译)中变得非常重要.我还没有机会对eSATA进行一些测试,看看它在内部SATA访问时间方面的表现如何.
在开发过程中,会出现相当多的随机磁盘访问,尤其是在使用C++等语言进行编译时.通过5400RPM驱动器为VM使用7200 RPM可缩短访问时间,从而缩短编译时间.使用10,000RPM或高端SSD会进一步缩短这些时间.收益递减点取决于环境的特定磁盘访问负载/模式.
主持人提示告诉您的病毒扫描程序忽略您的虚拟机目录或.vmdk文件扩展名,以便它不会不断地扫描您的虚拟机磁盘.
如果您一次运行多个虚拟机,或者您正在主机和客户机操作系统中工作,则在多核/ proc计算机上为主机操作系统保存至少1个CPU.例如,如果您正在运行两个虚拟机而在主机操作系统中不起作用,那么主机上具有单核虚拟机的双核处理器可能会为您提供最佳服务.
如果您正在运行单个虚拟机而无法在主机操作系统上运行,那么如果虚拟机应用程序可以使用第二个处理器,则运行双处理器VM可能会有所帮助.
如果您运行两个虚拟机,1个是单个proc,1个是双proc,则可能需要运行四核系统.
VMware Note(未针对其他虚拟化应用程序确认):如果您为虚拟机提供多个处理器,它将等待两个处理器变为可用,并且即使它们不使用它们也将保留它们.这可能会导致虚拟机之间或虚拟机与主机之间发生严重争用.
客户提示确保分配足够的RAM以满足虚拟机的需求
除非确实需要,否则不要使用快照.与维护基于快照的虚拟机文件系统相关的磁盘I/O损失很大.
如:
索引
系统还原
错误报告
无线零配置
请考虑不在VM中运行防病毒,反间谍软件或防火墙软件.你必须在这里权衡安全性与速度的利弊.对于许多人来说,如果他们得到病毒就不是问题,他们只是恢复以前的副本或快照.对于其他人来说,敏感信息的潜在暴露需要严格的安全策略,即使在VM内也是如此
我要说的是,在VM中运行防病毒软件或防火墙软件可能是Windows虚拟机经常感觉比其物理主机操作系统对手更"快"的首要原因.
遗憾的是,VM配置中可能存在三个文件碎片:在Guest OS的文件系统内,VM的虚拟机文件(例如vmdk)表示以及物理磁盘本身上的虚拟机文件.您对每个事务进行碎片整理的顺序.
首先,对来宾操作系统中的文件系统进行碎片整理(例如,在来宾操作系统中运行磁盘碎片整理程序或在来宾操作系统中使用JkDefrag或Defraggler等工具)
其次,使用vmware-diskmanager等工具对虚拟机文件(例如VMDK)进行碎片整理
第三,对保存虚拟机文件的主机上的文件系统进行碎片整理(即在主机OS上运行磁盘碎片整理)
我关闭了文件系统索引器,节省了磁盘空间和CPU时间.
我总是在Windows XP虚拟PC上禁用"系统还原".
从我的病毒防护中选择我的构建文件夹以进行访问扫描
这些是我在VM中关闭的服务
关闭关闭事件跟踪器
在c:\上切换索引
错误报告服务已关闭
智能卡访问已关闭
TCP/IP NetBIOS Helper
远程桌面帮助会话管理器
远程注册表
不间断电源供应
Windows音频
无线零配置
将磁盘映像放在外部HDD(甚至usb)上可以提高性能(特别是使用笔记本电脑)