我们正在研究虚拟化我们的C ++构build服务器。
主要的原因是我们目前使用的工具链,除了在Visual Studio中自己构build外,在Windows XP(或者2003Server)上只能正常运行,次要的原因是pipe理简单(只需克隆映像并准备运行不同的硬件。
最后,安装程序最有可能是每个硬件盒一个虚拟机,因为共享硬件对于C ++版本来说是没有意义的,因为无论如何它都会使CPU和磁盘达到最大。
一位同事在他的开发工作站上做了一些初步的testing,结果令人恐怖:
他测量了下面的构build时间来完整构build我们的Visual C ++ 8(Visual Studio 2005)解决scheme:
有了这些时机,我们当然不会去虚拟!
我们现在问自己,我们的测量是否做出了错误的假设。
相关的问题并没有完全帮助:
我们搞砸了任何设置,以获得如此可怕的减速C + +构build?
可能不是,VMWare Workstation不适合这项工作。
我们是否应该testingESX(i)(?)而不是Workstation?
是的,它会比Workstation更好,比裸机还要慢,但要好得多。
我们是否应该期待MS Hyper-V的其他function? (因为我们的IT会更喜欢这个)
如果需要,性能与ESXi大致相当,有些情况会更快,有些则会更慢 – 请随时尝试一下。
性能统计数据(Perfmon,Performance Monitor等等)(客户内部说它是瓶颈吗?虚拟机pipe理程序操作系统对于相同的统计数据说什么?
你使用半虚拟化的驱动程序还是仿真的?
您正在testing的PC是否具有IO虚拟化扩展以及基本的虚拟加速? 他们是否启用了BIOS?
虚拟化并不总是合适的……但是,您还没有告诉我们开发者工作站上的任何规格。 它有多less内存? 多less个核心?
你正在用/ MP标志运行编译吗?
虚拟机是否被configuration为在内存上过度使用? 记忆气球驱动程序曾经踢过吗? 还有什么东西在主机上运行? (例如,您的testing虚拟机是否运行了防病毒软件,以及主机工作站?)
我肯定会在ESXi上完成你的testing – 虚拟机pipe理程序是非常高效的,并且会为你的虚拟机提供更好的性能。 但是你仍然要面对内存和CPU的承诺。