对于Mongo数据库分析器,0级和1级之间有什么区别吗?

时间:2017-10-20 16:57:35

标签: mongodb

根据我在这里找到的Mongo文档:

https://docs.mongodb.com/v3.2/tutorial/manage-the-database-profiler/#profiling-levels

数据库分析器级别为“0”表示

  

剖析器关闭,不收集任何数据。 mongod总是将比slowOpThresholdMs阈值更长的操作写入其日志。这是默认的探查器级别。

同时等级'1'表示

  

仅收集慢速操作的分析数据。默认情况下,慢速操作慢于100毫秒。   您可以使用slowOpThresholdMs运行时选项或setParameter命令修改“慢”操作的阈值。有关详细信息,请参阅“为慢操作指定阈值”部分。

我不知道这些是如何不同的。它们都只记录慢速操作,并且都查看相同的值(slowOpThresholdMs)来执行此操作。

我错过了什么吗?如果这些确实是某些,那么有人知道为什么选项如此定义?我感到困惑,因为文档的其他部分(例如https://docs.mongodb.com/v3.2/reference/method/db.setProfilingLevel/)似乎表明0级意味着没有任何剖析,这不是我观察到的。

1 个答案:

答案 0 :(得分:1)

剖析器信息有两种可能的目标:

  • Mongod日志
  • 正在分析的数据库中的system.profile集合

level控制所写内容及其写入位置:

  • 级别0表示没有输出写入system.profile集合,但Mongo会将有关操作的信息输出到slowOpThresholdMs到Mongo日志

  • 级别1表示Mongo会将探查器文档写入system.profile集合,以进行超过slowOpThresholdMs 和* 的操作.Mongo将打印有关操作的信息花费比slowOpThresholdMs更长的Mongo日志

因此,关键的区别在于,个人资料文档将被写入system.profile集合以获取级别> 0