构建具有大量 RAM 的服务器的经济高效的方法

san*_*ity 10 hardware memory

我有一个 Java 应用程序,其可伸缩性主要受 RAM 限制,我希望在数据中心的一台或多台服务器上运行该应用程序。我应该在哪里寻找可以容纳 100GB - 512GB 或更多 RAM 的服务器硬件?我不是这些问题的专家,所以我真的不知道从哪里开始。

这是否进入了超级计算机领域(6 位数或更多),或者我可以以低 5 位数的价格获得这样的服务器?

基于以下一些问题的一些说明:

  • 是的,我一直在努力想办法消除这种可扩展性要求,但它并不是一个真正的选择。该应用程序从根本上需要对非常大量的数据进行非常快速的随机访问,存储在硬盘中(可能通过数据库)不会削减它。
  • 我很确定 JVM 至少在理论上可以扩展到那个程度。我经常使用分配给 Sun 1.6 JVM 的 10GB 运行我的代码,而没有出现明显问题。

小智 6

不寻常的需求有时会从不寻常的解决方案中受益。当然,您可以给 Sun、Dell 或 HP 提供 6 个数字并用它完成,但这并不是镇上唯一的游戏。

对于单盒解决方案,高达 128GB 的​​容量非常便宜(32 x 4GB ~ 3.000 美元),即使使用成本低于 1.000 美元的自制主板也是如此。(不要嘲笑制造商。如果它对谷歌来说足够好......)

256GB 更贵(32x8GB ~ 18.000 美元),除此之外......

或者,您是否考虑过将 Infiniband (10Gbps) 互连的廉价盒子作为替代方案?

您可以通过这种方式构建 4 个节点、16 个处理器(64 个内核)、512GB 的机器,并且仍然有 25.000 美元起的变化。

此外,如果您的应用程序可以在 3 台机器上运行(如果其中一台发生故障),并且可能获得高达 8 个节点的成本线性扩展(只需再添加 4 个节点),那么您还将获得优雅降级的额外好处。那时,您正在寻找一款价格低于 50.000 美元的酷炫 128 核、1TB RAM 野兽

在您将 Infiniband 提议视为异国情调之前,它不适合您要求的机器类型。例如,前 500 名超级计算机中有 141 台是以这种方式构建的,其中前 10 名中有 4 台(http://top500.org/connfam/8


小智 0

我认为在传统硬件上您将开始遇到 64GB 的空间问题。如果您可以从那里进行扩展,那就没问题,但我的猜测是,更具成本效益的解决方案是质疑您的架构。当然,我这么说并不知道你在做什么,但我只是把它扔在那里。