我正在使用Meteor和在Windows上运行的单独MongoDB。我将MongoDB作为一项服务运行。
我的MongoDB日志中包含以下内容:
Mon Mar 04 14:15:36 [conn19] info DFM::findAll(): extent 0:55000 was empty, skipping ahead. ns:webfm.graphdata
Mon Mar 04 14:15:38 [conn17] info DFM::findAll(): extent 0:55000 was empty, skipping ahead. ns:webfm.graphdata
Mon Mar 04 14:15:40 [conn16] info DFM::findAll(): extent 0:55000 was empty, skipping ahead. ns:webfm.graphdata
Mon Mar 04 14:15:43 [conn18] warning: can't find plugin [desc]
Mon Mar 04 14:15:43 [conn19] info DFM::findAll(): extent 0:55000 was empty, skipping ahead. ns:webfm.graphdata
Mon Mar 04 14:15:49 [conn18] info DFM::findAll(): extent 0:55000 was empty, skipping ahead. ns:webfm.graphdata
Mon Mar 04 14:16:14 [conn16] warning: can't find plugin [desc]
Mon Mar 04 14:16:20 [conn17] info DFM::findAll(): extent 0:55000 was empty, skipping ahead. ns:webfm.graphdata
Mon Mar 04 14:16:24 [conn16] warning: can't find plugin [desc]
Mon Mar 04 14:16:32 [conn20] info DFM::findAll(): extent 0:60000 was empty, skipping ahead. ns:webfm.history
Mon Mar 04 14:16:34 [conn16] warning: can't find plugin [desc]
从我能找到的“findAll():extent 0:55000 ......”似乎与我的应用程序经常删除数据有关。这是对的吗?
无法找到插件[desc]怎么样?什么是插件?我该如何解决?
答案 0 :(得分:1)
该消息实际上是信息性的,无害的。它告诉你整个范围是空的。如果你最近删除了大量数据,就会发生这种情况。
您可以使用compact命令对集合进行碎片整理和压缩(基本上将其重新写入磁盘并在集合上重新创建索引),这将消除日志消息。请注意,压缩是一项资源密集型操作。
答案 1 :(得分:1)
从我能找到的“findAll():extent 0:55000 ......”似乎与我的应用程序经常删除数据有关。这是对的吗?
根据尼克的回答,消息extent 0:55000 was empty, skipping ahead
与您的频繁删除有关。这是跳过空数据范围时发出的警告,0:55000
是范围位置。当您向该集合添加更多数据时,通常会重用该空间。
如果您经常添加和删除此集合并且需要考虑磁盘空间,您还可以考虑:
usePowerof2Sizes
标志(MongoDB 2.2或更高版本),以便更有效地重用已删除的空间无法找到插件[desc]怎么样?什么是插件?我该如何解决?
这通常意味着您具有无效的索引定义,并且无法找到索引“插件”来处理该索引。在这个例子中,我希望你有一个索引字段,其属性为desc
,而不是-1
。
您可以使用db.collection.getIndexes()
检查索引定义:
use webfm
db.graphdata.getIndexes()
答案 2 :(得分:0)
我不能确定这是一个问题。您可能正在运行具有太多冗长的mongodb,因此出于调试原因,它在其警告和进程中显示过多细节。这是一件好事,因为如果问题或错误可以确定问题。
但是如果你想删除它:
减少'v'的数量或在启动命令中删除它们。
如果您使用配置文件,请更改以下任何一项错误:
vvvvv = false
vvvv = false
vvv = false
vv = false
v = false