mongodb地图集警报的调试流程

时间:2019-03-28 13:53:54

标签: mongodb-atlas

我对mongodb和atlas还是很陌生,并被以下警报所迷惑

Query Targeting: Scanned Objects / Returned has gone above 1000

我希望有更多数据可以帮助调试,例如查询或至少收集数据。查询并不慢,因为性能顾问什么都没发现。

警报中给出的唯一信息是
 -创建时间
 -副本集
 -分片的链接
 -分片的类型(主要/次要)

我应该如何调试提示的问题?

1 个答案:

答案 0 :(得分:0)

将来的警报中包含有关如何解决该问题的信息-简而言之,就是下载mongodb日志并搜索效率低下的查询。

To download the logs

  

1。导航到“群集”页面

     

如果在页面上没有看到所需的集群,请确保已选择>正确的项目

     

2。选择集群

     

a。单击包含要下载其日志的mongod实例的集群旁边的省略号图标(...)。
  b。选择下载日志。

     

3。在“下载日志”模式中,编辑以下字段

     

选择进程:选择要为其记录日志的进程。有效选项为mongod和mongod-audit-log。
  选择服务器:选择集群中要检索其日志的服务器。
  开始时间:在组的时区中指定日期和时间,以定义要返回的日志活动的下限值。开始时间必须少于30天。
  结束时间:在组的时区中指定日期和时间,以定义要返回的日志活动的上限(上限)。

     

4。点击下载日志

效率低下的查询is explained here

  

以下mongod日志条目显示了从效率低下的查询生成的统计信息:

planSummary: COLLSCAN keysExamined:0
docsExamined: 10000 cursorExhausted:1 numYields:234
nreturned:4  protocol:op_query 358ms<Timestamp> COMMAND  <query>
     

此查询扫描了10,000个文档,并且仅返回4个文档,其比率为2500,效率非常低。