use*_*800 6 hardware performance mongodb
我正在尝试从头开始规划一个新的数据库环境,我想知道需要多少台服务器以及它们应该提供多少性能.
由于我希望它快速,我正在考虑使用SSD内存和大量RAM.但是,闪存很昂贵,可以弥补服务器成本的最大部分.因此,整个系统应该从一开始就设置为水平扩展,因此当我需要更多存储/性能时,我可以添加更多节点.
为了开始,我正在考虑使用2个分片,每个分片由主设备和副本从设备组成,以实现冗余.MongoDB文档建议使用1个主服务器和2个服务器,但我担心这将不在可用预算中,因为这些服务器中的每一个都将配备大约200 GB的RAM和6x400 GB的SSD作为Raid 10.
使用分片时,还建议使用3个配置服务器来实现故障保护/高可用性.与上面相同,我认为1个主人和1个奴隶作为开始.
摇滚.听起来像一个很棒的设置.鉴于您的配置选择,我无法想象预算会过多地限制您的选择.
配置服务器不需要专用的物理服务器.这些运行相当轻松.您mongos和配置服务器之间需要低延迟.您将始终希望确保主机可靠,并为灾难做好准备.确保仔细检查分片环境的备份过程.备份需要在分片群集的移动部分之间进行协调.如果可能,请在同一数据中心的虚拟服务器上运行配置服务器.
是的,如果您要在一台计算机上运行多个分片,您所描述的硬件是有意义的.这台功能强大的机器上的单个MongoDB将使机器大部分处于空闲状态.单个mongod进程不能使用那么多的RAM,I/O或CPU.你会想要"核心碎片"主机.在MongoHQ,我们通过运行各做mongod一个容器,我们可以从其他情况下在同一台机器上的隔离.根据您的规范,您可以在单个主机上运行多达10个分片,如果您想要拉伸主机,则可以运行更多分片.
您可以使用单个分片启动此操作,然后再迁移到分片群集.这是我们推荐的分片方法:除非必须,否则不要进行分片.通过延迟分片,可以提高对系统进行更改的灵活性.当分片到位,你犯一个特定的路径,没有灵活性(当你知道未来是好的).通过延迟分片,你没有权衡.
仲裁者不需要专用硬件.您可以在虚拟机上运行它们.这些不需要相同级别的备份要求,但应具有良好的正常运行时间.
使用3台服务器并不是实现正常运行时间的必要条件.但是,当一个数据主机停机几个小时后,您将被降级为单个数据主机.在降级到单个数据主机的同时,单个主机可以正常工作.因为您只有一秒钟的数据在运行,所以您的中断风险更高.话虽如此,对于大多数用例来说,2个节点加一个仲裁器是可以的,并且如果其中一个数据节点出现故障,它们将保持运行状态.
希望这可以帮助!我们在MongoHQ上运行类似的配置,并且非常满意我们从主机获得的性能水平.