MogoDB-在PSA副本集上查询变得非常缓慢

问题描述

我有一个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 (将#修改为@)