我们目前在亚马逊的EC2实例上部署了mongodb分片集群。这些分片也是副本集。使用的实例使用的是配置了IOPS的EBS。
我们在一个集合中有大约3000万个文档。我们的查询计算与过滤器匹配的整个集合。我们对几乎所有的可查询字段都有索引。这会导致RAM使用率达到100%。我们的工作集超出了RAM的大小。我们认为我们的查询响应慢是由于EBS太慢,所以我们正在考虑迁移到新的SSD支持的实例。
http://aws.typepad.com/aws/2013/11/a-generation-of-ec2-instances-for-compute-intensive-workloads.html提供C3
I2即将面世http://aws.typepad.com/aws/2013/11/coming-soon-the-i2-instance-type-high-io-performance-via-ssd.html
我们唯一担心的是SSD是短暂的,这意味着一旦实例停止、终止或失败,数据就会消失。我们如何解决这个问题?我们如何自动化备份。迁移到SSD以提高查询性能是个好主意吗?我们还需要设置一个分片集群吗?
发布于 2013-12-02 01:17:44
使用临时磁盘是有风险的,但如果您的复制设置正确,这应该不是一个大问题。我假设您已经设置了一个三节点副本集,对吗?您的配置服务器也有三个节点吗?
我可以从经验中谈到这一点,因为我所在的公司就是这样建立起来的。为了帮助降低风险,我正在转向一种涉及隐藏副本的备份策略。使用此设置,我可以关闭隐藏的副本集和其中一个配置服务器(首先已停止平衡),并获取数据文件(副本和配置服务器)的完整副本并进行有效备份。如果亚马逊网络服务在我的可用区出现故障,我仍然可以在S3上使用每日备份进行恢复。
希望这能有所帮助。
https://stackoverflow.com/questions/20281184
复制相似问题