1

我们目前在 Amazon 的 EC2 实例上部署了 mongodb 分片集群。这些分片也是副本集。使用的实例使用 EBS 并预配了 IOPS。

我们的集合中有大约 3000 万份文档。我们的查询计算与过滤器匹配的整个集合。我们对几乎所有可查询字段都有索引。这导致 RAM 达到 100% 的使用率。我们的工作集超过了 RAM 的大小。我们认为我们的查询响应缓慢是由 EBS 速度慢造成的,因此我们正在考虑迁移到新的 SSD 支持的实例。

C3 可用 http://aws.typepad.com/aws/2013/11/a-generation-of-ec2-instances-for-compute-intensive-workloads.html

I2 即将推出 http://aws.typepad.com/aws/2013/11/coming-soon-the-i2-instance-type-high-io-performance-via-ssd.html

我们唯一担心的是 SSD 是短暂的,这意味着一旦实例停止、终止或失败,数据就会消失。我们如何解决这个问题?我们如何自动化备份。迁移到 SSD 以提高查询性能是个好主意吗?我们还需要设置分片集群吗?

4

1 回答 1

0

使用临时磁盘是有风险的,但如果你的复制设置正确,它应该不是一个大问题。我假设您已经设置了正确的三节点副本集?您的配置服务器也有三个节点?

我可以从经验中说这一点,因为我所在的公司就是这样设置的。为了帮助降低风险,我正在转向涉及隐藏副本的备份策略。通过此设置,我可以关闭隐藏的副本集和其中一个配置服务器(首先停止平衡)并获取数据文件(副本和配置服务器)的完整副本并进行有效备份。如果 AWS 在我的可用区出现故障,我仍然可以在 S3 上进行每日备份以从中恢复。

希望这可以帮助。

于 2013-12-01T17:17:44.253 回答