目前,我正在使用mongodb作为我的大数据项目。我在Centos 7服务器上安装了mongodb,内存为32 to,连接到12 to。到目前为止,这是我的数据库统计数据:
web-analyzer 43.933 GB
web-crawler 109.900 GB
web-crawler2 339.788 GB问题是,每当我在五月集合上运行craeteIndex()时,我的mongodb最终总是没有响应(我不能执行db.collection.count()或'show dbs / collection‘命令),所以我使用CTRL + C终止了任务,之后我不能使用’杀死pid‘或'mongod关机’命令关闭mongodb,所以我必须重新启动我的服务器。有谁知道这个问题的原因,以及如何解决这个问题?
这是我的Mon神明服务的“top”命令输出:
运行查询之前的:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2896 mongod 20 0 0.965t 99220 70964 S 0.3 0.3 0:00.33 mongod运行后的createIndex()
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2896 mongod 20 0 0.965t 2.465g 2.411g S 2.7 7.9 0:26.03 mongod谢谢您:)
发布于 2015-03-18 08:06:38
默认情况下,生成索引是一种阻塞操作,它锁定数据库直到完成。当您已经收集了大量数据时,这可能需要很长时间。但是,您可以使用background:true选项在后台构建索引。
db.collection.createIndex({ keyfield: 1, otherkeyfield: 1 }, { background: true });这将需要更长的时间,但数据库将继续响应,而你这样做。
有关创建索引的详细信息,请参阅请参阅文件。
https://stackoverflow.com/questions/29114389
复制相似问题