这在MongoDB中意味着什么?

时间:2011-02-05 20:39:15

标签: mongodb database

我刚刚安装了MongoDB。我不复制。我打开的所有内容都是配置文件中的auth。我正确配置了它。

它主要起作用,但在随机时间,它“挂起”,当我做“顶部”时,它会导致我的CPU跳转到LOAD 4.0。

当我查看消息日志时,我看到了很多这样的内容:

[DataFileSync] flushing mmap took 0ms for 5 files
[DataFileSync] flushing mmap took 0ms for 5 files
[DataFileSync] flushing mmap took 0ms for 5 files

这很奇怪,因为它只是挂起而没有任何反应。这些消息不断出现,并且“已接受的连接”不再出现。我没有复制,我没有使用auth。

之外的任何设置配置mongo

好吧,Mongo确实崩溃了一次,我做了一次“sudo reboot”,而mongo仍在运行

3 个答案:

答案 0 :(得分:2)

MongoDB使用内存映射文件;数据更改偶尔会从RAM刷新到磁盘。这将是您看到的地图冲洗。

答案 1 :(得分:0)

默认情况下,mongodb会每隔60秒将更改刷新到磁盘。但不应该在那段时间里挂断电话。

您使用的是什么版本的mongodb?

答案 2 :(得分:0)

这种同步看起来很正常,只用了0ms ......

也就是说,MongoDB确实有数据库级锁定,因此如果某些操作导致锁定(如长查询,构建大索引等),它将“挂起”整个数据库。

我将关闭您的数据库并运行repair

您可以先运行validate ...查看是否找到了任何内容......

> db.mycollection.validate();

您的数据文件中可能存在错误,这是由于您提到的不正常关机造成的......并且它已经挂断了这些错误。

$ ./mongod --repair

如果您没有太多负载,也可以“实时”运行修复。

> db.repairDatabase();

你也可以尝试任意mongostat ...

的结果