我刚刚安装了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仍在运行
答案 0 :(得分:2)
MongoDB使用内存映射文件;数据更改偶尔会从RAM刷新到磁盘。这将是您看到的地图冲洗。
答案 1 :(得分:0)
默认情况下,mongodb会每隔60秒将更改刷新到磁盘。但不应该在那段时间里挂断电话。
您使用的是什么版本的mongodb?
答案 2 :(得分:0)
这种同步看起来很正常,只用了0ms ......
也就是说,MongoDB确实有数据库级锁定,因此如果某些操作导致锁定(如长查询,构建大索引等),它将“挂起”整个数据库。
我将关闭您的数据库并运行repair。
您可以先运行validate ...查看是否找到了任何内容......
> db.mycollection.validate();
您的数据文件中可能存在错误,这是由于您提到的不正常关机造成的......并且它已经挂断了这些错误。
$ ./mongod --repair
如果您没有太多负载,也可以“实时”运行修复。
> db.repairDatabase();
你也可以尝试任意mongostat ...
的结果