我有一个Mongo2.4.8集群。我的软件动态地划分数据,现在我有大约30000个碎片集合。该群集当前仅包含一个碎片(副本集);它是一个群集,以便将来方便扩展。
当我启动一个新的mongos进程并运行show collections时,需要几个小时才能完成。在此期间,mongos对所有客户机都没有响应(但集群正常)。如果我从未运行过show collectoins,则通过mongos执行的所有其他操作都正常工作。
最终show collections完成,之后mongos工作正常,在同一show collections上再次运行mongos会立即返回。我只是在几个月来第一次需要重新启动amongos时才发现有问题,在此期间,收集计数大大增加。
从逻辑上讲,从配置服务器到新的mongos的数据传输(关于集合块)似乎是瓶颈。但在这种情况下,双方都没有表现出高CPU或高网络活动。
这是已知的行为吗?我怎样才能进一步调查这个问题?

最佳答案

我发现问题出在配置服务器上。更换后,一切又恢复正常。
详细信息:坏服务器没有响应查询,查询之后会被重新发送到其他服务器。这为每个到配置服务器的请求创建了一个有效的延迟,这在“show collections”操作中最为明显,该操作在mongos和配置服务器之间为每个集合至少执行一次往返,并且都是串行执行的。

关于mongodb - Mongos需要数小时才能“展示收藏品”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24594657/

10-09 20:54