执行大量写操作时MongoDB游标超时

时间:2011-05-09 18:28:40

标签: mongodb

我们有一个包含2个副本集的集群,每个集合有3个服务器。单个集合被分片。我们还有一些我们每天使用的更多(8+)个系列。大部分数据都在分片集合中,其中有近1亿条记录。

最近我们添加了获取100x之前获得的数据的要求,我们需要将其写入mongodb。已设置守护程序以执行使数据库保持最新所需的写入。该脚本每秒执行超过200次写入,大多数写入所有单独的集合。

由于写入量很大,我们无法为分析目的执行大量读取操作。接收客户端和服务器端的游标超时组合(“未找到游标”)。

我们已尝试对读取执行限制/跳过方案,但问题仍然存在。解决这个问题的最佳方法是什么,因为我们需要大量的写入,少量但大量的读取?

1 个答案:

答案 0 :(得分:3)

通常情况下,在这种情况下,您要开始查看导致时间的查询。然后你想看看硬件,看看有什么压力。

  1. 这些查询是否正确编入索引?
  2. 索引有多大?它们适合RAM吗?
  3. 您能否提供瓶颈所在的详细信息?
  4. 您是否已锁定IO?
  5. 您的处理器是否全速运行?
  6. 此外,日志中有什么异常吗?

    基本上我们需要确保您拥有:  1.正确构建系统以处理查询  2.正确配置系统以处理数据量