我正在尝试收集关于我的Applciation发生在mongodb上的所有查询。 所以我将分析级别设置为2,以便它将记录所有查询。 作为架构的一部分,只要用户登录,就会在mongodb上发生连续的更新。
但我观察到system.profile
计数正在减少,不知道为什么
> db.system.profile.count()
322
> db.system.profile.count()
351
> db.system.profile.count()
202
> db.system.profile.count()
136
> db.system.profile.count()
233
为什么我的情况下会覆盖查询?
我是否有可能记录我的应用程序发生的所有区别查询。
我需要这个,因为我可以在我的一个集合中删除/添加一些索引。
答案 0 :(得分:21)
system.profile是一个上限集合,默认大小为1MB,因此文档会以自然(相对于插入时间戳)为基础进行清除,以便为较新的文档腾出空间。
为了增加system.profile集合的大小(比如10 MB),请执行:
1)停止探查器:db.setProfilingLevel(0)
2)删除system.profile:db.system.profile.drop()
3)手动创建一个更大的system.profile集合:db.createCollection( "system.profile", { capped: true, size: 1024 * 1024 * 10 } )
4)再次启用分析
如果平均而言,在200-300个文档附近安装了1MB的集合,则新设置将适合大约2,000-3,000个文档。根据需要增加system.profile大小。
答案 1 :(得分:1)
这是官方文档链接 https://docs.mongodb.org/manual/tutorial/manage-the-database-profiler/#profiler-overhead
您需要更改system.profile Collection
的集合更改大小