我可以从个人经验中说出这一点,因为我正在处理此问题。我目前作为承包商在一家公司工作,他们的SQL Server开发系统采用了这种环境。我试图在这个环境中开发一个相当简单的B.I.系统,但是性能问题让我很苦恼。
在天真的虚拟机上,TLB缺失和模拟I/O非常缓慢。如果您的操作系统支持半虚拟化(这在Windows上仍然不是一项成熟的技术),则可以使用半虚拟化I/O(实质上是钩入VM中的API的设备驱动程序)。Opteron的最新版本支持嵌套页表,这消除了在软件中模拟MMU(非常缓慢)的需要。
因此,运行大数据集并进行大量I/O的应用程序(例如ETL过程)会遇到虚拟化的弱点。如果您有像数据仓库系统这样可能对内存或磁盘I/O造成压力的东西,您应该考虑其他解决方案。对于简单的事务应用程序,它们可能还好。
我使用的系统运行在刀片上(IBM服务器)上,连接着一个4x 2gbit F/C链路的中档SAN。虚拟机有4GB RAM和两个虚拟CPU。即使在SAN非常安静的情况下,它的速度也只有
XW9300的一半。你的情况可能不同,但我建议开发任何I/O重的东西时都应该选择工作站系统,而不是基于SAN的虚拟服务器。除非你的资源使用要求超出这种套件(在这种情况下,它们已经远远超出了虚拟服务器),否则这是一个更好的解决方案。硬件并不那么昂贵,肯定比SAN、刀片机箱和VMWare许可证便宜得多。SQL Server开发人员版附带V.S. Pro及以上版本。
这也有一个好处,就是你的开发团队被迫从一开始就处理部署 - 你必须设计一个易于“一键”部署的架构。这并不像听起来那么难。
Redgate SQL Compare Pro在这里是你的朋友。你的开发人员还可以获得数据库管理的基本工作知识。
我快速访问了惠普公司的网站,得到了一份价格清单,对于一台装备有四核Xeon芯片,4GB内存和1x146以及4x73GB 15k SAS硬盘的XW8600(他们目前的基于Xeon的型号),其价格约为$4,600。街机价格可能会略低。将此与SAN、刀片底座和VMware许可证的价格以及该设置的备份成本进行比较。对于备份,您可以提供一个网络共享备份位置,人们可以根据需要放置压缩的数据库备份文件。
编辑:AMD网站上的这篇白皮书讨论了虚拟机的一些基准测试。从后面的基准测试中可以看出,重I/O和MMU工作负载确实会影响虚拟机的性能。他们的基准测试(需要注意的是这是供应商提供的统计数据)表明,在OLTP基准测试中存在3.5倍的速度惩罚。虽然这是供应商提供的数据,但也要谨慎对待:
我们在这里看到的是,在VM上,TLB缺失和I/O非常昂贵。具有半虚拟化驱动程序和MMU硬件支持的良好架构将减轻部分或全部这些问题。但是,我认为Windows Server 2003根本不支持半虚拟化,而且我不确定Windows 2008服务器提供了什么级别的支持。毫无疑问,根据我的经验,在ETL过程和SSAS立方体构建时,与相对较低规格的裸机硬件相比,VM将使服务器显着减速。