我们目前在 Amazon 的 EC2 实例上部署了 mongodb 分片集群。这些分片也是副本集。使用的实例使用 EBS 并预配了 IOPS。
我们的集合中有大约 3000 万份文档。我们的查询计算与过滤器匹配的整个集合。我们对几乎所有可查询字段都有索引。这导致 RAM 达到 100% 的使用率。我们的工作集超过了 RAM 的大小。我们认为我们的查询响应缓慢是由 EBS 速度慢造成的,因此我们正在考虑迁移到新的 SSD 支持的实例。
I2 即将推出 http://aws.typepad.com/aws/2013/11/coming-soon-the-i2-instance-type-high-io-performance-via-ssd.html
我们唯一担心的是 SSD 是短暂的,这意味着一旦实例停止、终止或失败,数据就会消失。我们如何解决这个问题?我们如何自动化备份。迁移到 SSD 以提高查询性能是个好主意吗?我们还需要设置分片集群吗?