我有一个mongo 2.4.8集群。我的软件动态分区数据,现在我有大约30,000个分片集合。群集当前只包含一个分片(这是一个副本集);它是一个允许未来轻松扩展的集群。
当我开始新的mongos
流程并运行show collections
时,需要几个小时才能完成。在此期间,mongos
对所有客户端都没有响应(但群集很好)。如果我从未运行show collectoins
,则mongos
中的所有其他操作都会正常运行。
最终show collections
完成,之后mongos
正常工作,并在同一show collections
点再次运行mongos
。我发现当我需要在很多个月内第一次重新启动mongos
时出现问题,在此期间收集计数大大增加。
从逻辑上讲,似乎从配置服务器到新mongos
的数据传输(关于集合块)是瓶颈。但是,当这种情况发生时,任何一方都不会显示高CPU或网络活动。
这是否已知行为?我该如何进一步调查此问题?
答案 0 :(得分:1)
我将问题追溯到错误的配置服务器。更换后,一切都恢复正常。
详细信息:错误的服务器没有响应查询,之后将它们重新发送到其他服务器。这为配置服务器的每个请求创建了一个有效的延迟,这在“show collections”操作中最为明显,它在mongos和配置服务器之间每个集合至少进行一次往返,并且它们都是串行完成的。