Windows开发人员计算机上具有超过16 GB的RAM有什么好处?


8

假设一台运行Windows Server 2008和Hyper-V的计算机(具有24 GB RAM的双四核Xeon(2.26 GHz))。我可以期望多少个虚拟机同时运行并具有良好的性能?

这是过度杀伤力吗?你真的有太多的RAM吗?

假设每个VM 2 GB。对于VM来说,这大约是16 GB,而对于主OS和Hyper-V,还剩下8 GB。

听起来对吗?


编辑:

我试图使这个问题听起来不像是在吹牛。从来不是我的意图。这是一个很难写的问题。


1
只是古玩。.你在做什么“开发”?这与编程有什么实际关系?!
Miky Dinescu,2009年

死了!在工作站上有8个VM的16GB RAM?
拜伦·惠特洛克

这使我在512 mb薄弱的笔记本电脑上感到不舒服。
Zifre

4
听起来比开发人员问题更像是一次自我之旅……反正我很嫉妒:)
罗伯特·古尔德

1
我知道听起来像那样,但我真的很好奇。这不是自我旅行。如果是这样,我会给出完整的规格。我对这个问题很认真。它是我的第一台64位计算机,也是我有史以来记忆最多的内存,因此我想知道超过16GB的内存是否过大。我记得约640k的内容。:)

Answers:


7

“我想使用Hyper-V一次运行大约8个VM。”

你到底为什么要这样做呢?

由于您不太可能在开发过程中同时加载所有8个虚拟机(可能只是为了进行简短的负载测试),因此您可以在2Gb中运行所有8VM,并且仍然可以充分利用所有这些内核。


对于使用SQL Server,Web Server和客户端计算机的多层测试方案。

3
8VM对于简单的SQL Server,Web Server测试而言过于复杂。
S.Lott

8是很多东西-如果一次只能执行3或4,我建议改为编写代码以针对VMWare的API进行工作-因此您可以根据要执行的测试来启动/停止一组机器。
Bittercoder

在这种情况下是否合适并不重要-有足够的理由在Windows机器上使用超过16GB的RAM,因此这是一个很好的一般开发问题。
Justicle

我不明白为什么8太多了。如果要测试集群,测试分布式系统,测试多层系统,为什么不选择8?

4

我有几台运行VMware的商用机器,用于测试,持续集成等。

这些机器具有单个四核处理器和每个处理器16 GB的RAM-在我们当前的设置中,我们观察到:

  • 首先是I / O绑定,其次是CPU,内存不是问题。
  • 使用iSCSI和OpenFiler通过双千兆以太网将虚拟硬盘驱动器托管在单独的专用文件服务器上,与本地磁盘相比,有助于降低成本并提高性能。
  • 每台计算机上未充分利用16 GB的内存,大多数实例仅在512 MB和2 GB的RAM之间分配,并且操作系统有5或6 GB的可用空间。
  • 对于一台具有24 GB RAM的双四核Xeon机器的成本,您可以购买2台或更多4台以上的商用机器,每台具有16 GB RAM和一个四核CPU(避免使用FBDIMM可以节省大量现金) -特别是因为冗余不是测试/开发机器的问题。
  • 在测试复杂的应用程序/环境时,将不同的虚拟机置于不同的物理环境通常会有所帮助,这样您就可以在各种服务之间获得切合实际的网络延迟水平。

至于使用您的钻机进行开发-对我来说,主要的问题是I / O-如果您运行的虚拟机数量如此之多,则会在开发时看到对磁盘访问时间的负面影响,这会降低编译速度,等等。倾向于将尽可能多的虚拟机转移到一个单独的盒子上,并减轻开发人员的负担,以便快速减轻编译和其他与开发人员相关的任务。

关于我去年的初始设置的博客文章。



3

使用64位Windows,解决那么多内存应该不是问题。我认为您最关心的是I / O,因为有这么多VM一次运行。我建议以可用的最快RPM来购买SAS驱动器,以有效地支持许多VM。


同意 根据您的需求选择一堆15,000 SCSI驱动器或闪存驱动器。
Joey Robert

3

我有一个类似的问题,而不是从理论上进行辩论,我决定购买该产品,并在必要时将其更换/升级。我最终选择了配备12 GB RAM,2个Intel 80 GB SSD(RAID 0),两个1 TB SATA HDD(RAID 1)和1TB SATA的Core i7 920。

我扔在Windows Server 2008 x64上,并在我的SSD上托管了几个VM。非常非常快速的响应。(我对虚拟机有一定的经验,并且知道磁盘I / O将使我在虚拟机中托管开发人员环境感到吃力,尤其是在将SQL Server添加到同一主轴时。

我确实很喜欢这种设置,但是随后便有了一个虚拟机游乐场(一台配备32 GB RAM和一个漂亮的小SAN的Dell 1950)。我将这些虚拟机与其他虚拟机一起扔给了它,并在我的SSD上加载了Windows 7。(我觉得我可以使用我的系统,因为我现在独立于新工作站托管了一些虚拟机。)

我注意到的最大事情是在非VM机器上开发要好得多。速度不是那么重要,而是视觉效果,字体的抗锯齿等等。SSD确实使I / O成为一个不可或缺的因素,但它们使一切都变得瞬间。(此外,Windows 7也很不错。)

我知道当RTM出现时我必须重新构建它,但是我确实有可以在重新构建它时使用的VM。我需要使用VPC而不是Hyper-V来构建VM,以确保没有其他人搞砸,但我认为这是一个合理的权衡。

简而言之,我想回应其他人说要在单独的服务器上托管VM,但我想补充一点,英特尔的SSD非常快。分开的机器给您更大的灵活性。您的驱动器听起来足够快以进行测试,但是对于开发工作而言,则是快速的节拍。


1

由于每个VM在Hyper-V中“拥有”它自己的内存,因此您可以主动托管的VM数量受可用RAM的限制。所以真的不能有太多。

当然,开发机器上最大的瓶颈就是硬盘驱动器。有了额外的内存,您可以为自己设置一个RAM驱动器,这可能会带来巨大的性能优势。


是的,毫无疑问,我没有提到驱动器,因为我希望问题仅集中于内存。DDR3内存并不便宜,如果我不需要24GB,16GB就可以了,我会降低规格。这台机器将有4个15k SAS驱动器,因此我认为它们足够快。

1

解决该RAM不会有任何问题,也许可以腾出20 GB,但是到那时,您还可能会获得额外的4 GB。为什么要在开发人员计算机上执行此操作?除非您是一个人表演,否则应该有一个中央服务器来处理这样的事情。


它是一个测试。我将为我们的质量检查小组评估此配置,以进行多层测试。在评估期之后,我们可能会获得具有类似规格的机架式。另外,这是我尝试并不能正常使用VM的借口。

1

如果您的方案是关于服务器+客户端的,那么多机设置将更好地进行仿真,并且更便宜。VM实际上与本机OS不同,线程和配置文件已损坏,因此您将偏离目标,更糟的是,实际上无法进行相应的配置。

我的2美分


1
网络延迟也可能是一个因素-尽管我认为这些天在VM中测试服务器通常很有价值,因为在企业界已对大量基础架构进行了虚拟化以降低成本...
Bittercoder

好一点,如果您在某人的硬件上运行服务器,那么现在好像还是要进行虚拟化
罗伯特·古尔德

1

罗伯特

如果您打算同时运行8个VM(用于开发人员,或用于其他方式),我强烈建议您探索VMWare提供的服务器虚拟化选项。通常,服务器虚拟化技术比工作站虚拟化技术在物理资源上的优化和效率要高得多。

我曾经有过使用VMWare Infrastructure 3(这是VMWare服务器虚拟化产品/技术系列的统称)的机会,我必须对我印象深刻。与工作站版本相比,服务器版本非常高效,并且提供了难以置信的灵活性。

我没有使用Hyper-V的经验,但是许多使用过Hyper-V的人对此表示高度评价。但是,我认为VMWare是一个更好的选择,因为它使您可以创建在同一物理主机上运行不同操作系统的VM,这是Hyper-V无法做到的(AFAIK)

就RAM而言,VMWare基础架构3的局限性远远超过了24Gb,它允许您在来宾之间配置所需的可用内存,甚至每个内核,只要来宾支持即可。

如果您有兴趣学习VMWare Infrastructure 3,我强烈推荐这本书,因为它包含有关VMWAre ESX服务器体系结构的讨论以及在其他任何地方都找不到的技术注意事项。

我希望您会发现这很有用,尽管它不能直接回答您的问题,并且您可以原谅我的评论(对于开发机来说,24Gb似乎确实与众不同..至少有一段时间了。)


1
感谢您的链接。由于我将只处理Microsoft操作系统,因此我将尝试Hyper-V,但如果我需要进行更多探索,请记住它。我同意24GB的确有些极端,但仅比12GB的价格高出500美元-750美元(我忘记了)。从现在开始的几年里,关于这个问题的大多数评论都显得古朴!;-)

我同意RAM。但是,关于Hyper-V,我认为目前它仅适用于Win 2K8,在我们的方案中,我们有一些仅与2K3兼容的工具。也许以后可以分享您的发现!
米基·迪涅斯库

0

我们正在运行Hyper V,并在同一台计算机上托管Server 2003和XP的实例。

---这应该是对用户的答复,该用户说您不能在Hyper V的同一台计算机上托管不同的OS。或者无论如何,这就是我的阅读方式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.