问题描述
我有一个MongoDB副本集,其中有一个主服务器,一个仲裁器,一个有表决权的辅助服务器和两个没有表决权的辅助服务器。
两个不带投票的辅助轴承是裸机mongo安装,以帮助进行繁重的聚合查询。 (每个16cores / 128GBRam / SSD)
副本集成员配置在问题的底部。
以下查询每分钟针对不同的集合(〜10)多次运行(大约100次)。
查询在最坏的情况下花费的时间不超过2秒。
大约一周前,我注意到依赖该查询的应用程序在超时时出错。我已经对副本集连接(mongo + srv)或单个成员运行了查询-结果相同-“ 超时 ”
我无法回忆起引起此问题的任何事件,我想知道查询是否可能由于某种原因从根本上构造错误而导致问题。
我已经为字段“ 属性”,“ attributes.deleted ”,“ attributes.archieved ”,“ last_extracted”建立了索引”,但这没有帮助。
集合的大小在2gb / 50k记录到10gb / 150k记录之间。
此查询有问题吗?
db.getCollection("threads").aggregate(
[{'$match':
{'$and':
[{'$or':
[{'attributes':
{'$exists': false}},{'attributes.deleted':
{'$exists': false}},{'attributes.deleted': {'$eq': false}}]},{'$or':
[{'attributes.archived':
{'$exists': false}},{'attributes.archived':
{'$eq': false}}]}
]}},{'$project': {'_id': 1,'url': 1,'last_extraction': 1}},{'$sort': {'last_extraction': 1}},{'$limit': 1}
])
副本集成员配置
rs0:SECONDARY> cfg.members
[
{
"_id" : 1,"host" : "XXXXXX1:27777","arbiterOnly" : false,"buildindexes" : true,"hidden" : false,"priority" : 0.8,"tags" : {
},"slaveDelay" : NumberLong(0),"Votes" : 1
},{
"_id" : 2,"host" : "XXXXX2:27777","priority" : 0.2,{
"_id" : 3,"host" : "XXXXX3:27777","arbiterOnly" : true,"priority" : 0,{
"_id" : 4,"host" : "XXXXXX4:27777","Votes" : 0
},{
"_id" : 5,"host" : "XXXXXXX5:27776","Votes" : 0
}
]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)