gpt4 book ai didi

performance - 用于分片 + 冗余 MongoDB 环境的硬件

转载 作者:IT老高 更新时间:2023-10-28 13:27:45 25 4
gpt4 key购买 nike

我正在尝试从头开始规划一个新的数据库环境,我想知道需要多少台服务器以及它们应该提供多少性能。

由于我希望它很快,我正在考虑使用 SSD 内存和 RAM 负载。然而,闪存很昂贵,并且占据了服务器成本的最大部分。因此,整个系统应该从一开始就设置为水平扩展,这样我就可以在需要更多存储/性能时添加更多节点。

首先,我正在考虑使用 2 个分片,每个分片由一个主站和一个副本从站组成,以实现冗余。 MongoDB 文档建议使用 1 个主服务器和 2 个从服务器,但恐怕这不在可用预算之内,因为这些服务器中的每一个都将配备大约 200 GB 的 RAM 和 6x400 GB SSD 作为 Raid 10。

使用分片时,还建议使用 3 个配置服务器以实现故障安全/高可用性。与上面相同,我正在考虑 1 个主和 1 个从作为开始。

  • 你会推荐什么样的硬件来放置配置服务器
    在?它们的性能是否应该与中的分片节点相同
    cpu/内存/硬盘的术语?或者我可以将它们放在虚拟化或
    在更便宜的硬件上?
  • 我描述的设置是否有意义?如何
    关于分片节点上 RAM 与硬盘的比率?目前,将两倍数量的磁盘放入 1 个分片(1 个主、1 个从)并跳过分片直到我真的需要它可能会更容易和更便宜。但是(如上所述) - 系统应该从一开始就准备好进行分片,因为存储需求可能会在一夜之间发生变化。或者是否可以将其全部设置,但现在仅在 1 个分片上运行?
  • 因为我只打算使用 2 个而不是 3 个服务器
    高可用性/故障安全 我可能也需要仲裁器。他们是不是
    还需要专用硬件吗?或者我可以在为配置服务器和分片节点提供服务的虚拟机中使用一个仲裁器吗?或者您认为绝对必须使用 3 个单独的服务器来实现冗余?
  • 最佳答案

    摇滚吧。听起来像一个很棒的设置。鉴于您的配置选择,我无法想象预算会过多限制您的选择。

  • 您不需要用于配置服务器的专用物理服务器。这些运行相当轻松。您的 mongos 之间需要低延迟和你的配置服务器。您将始终希望确保主机可靠,并为灾难做好准备。确保您仔细检查分片环境的备份过程。备份需要在分片集群的移动部分之间进行协调。如果可能,请在同一数据中心的虚拟服务器上运行配置服务器。
  • 是的,如果您要在一台机器上运行多个分片,那么您描述的硬件是有意义的。那台强大的机器上的单个 MongoDB 将使机器大部分处于空闲状态。单mongod进程不能使用那么多的 RAM、I/O 或 CPU。您将希望对主机进行“核心分片”。在 MongoHQ,我们通过运行每个 mongod 来做到这一点。在一个容器中,我们可以将其与同一台机器上的其他实例隔离。根据您的规范,您可以在单个主机上运行多达 10 个分片,如果您想扩展主机,则可以运行更多分片。
  • 您可以从单个分片开始,然后迁移到分片集群。这是我们推荐的分片方法:除非必须,否则不要分片。通过延迟分片,您可以提高对系统进行更改的灵活性。当分片到位时,你已经致力于一条特定的路径,没有灵活性(当你知道 future 时,这是可以的)。通过延迟分片,您没有任何权衡。
  • 仲裁器不需要专用硬件。您可以在虚拟机上运行它们。这些不需要相同级别的备份要求,但应该具有良好的正常运行时间。
  • 使用 3 个服务器不是稳定正常运行时间的要求。但是,当一台数据主机出现故障几个小时时,您将被降级为一台数据主机。虽然降级到单个数据主机,但单个主机将正常工作。因为您只有一秒钟的数据在运行,所以您确实会面临更高的中断风险。话虽如此,对于大多数用例来说,2 个节点加上一个仲裁器是可以的,如果其中一个数据节点出现故障,它将保持运行状态。

  • 希望这可以帮助!我们在 MongoHQ 运行类似的配置,并且对我们从主机获得的性能水平感到非常满意。

    关于performance - 用于分片 + 冗余 MongoDB 环境的硬件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18319147/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com