当mongod进程占用100%CPU时,MongoDB GridFS删除操作太慢

时间:2015-01-28 12:40:44

标签: python mongodb pymongo gridfs

我使用Python(Debian 7.8 amd64上的CPython 2.7.3)与pymongo驱动程序(版本2.7.2)连接到MongoDB(db版本v2.4.12)数据库用于在GridFS存储集合中存储文件。虽然mongodb可以即时找到具有给定_id的文件对象的filename,但请求删除该文件的_id需要不寻常的10秒才能完成{{1}占用100%的CPU时间。

我不是mongodb专家,并且没有对其进行任何性能优化,但我认为这里仍有问题。我错过了什么,如何找到并解决这个问题?

我应该补充说,这个集合中有数百万个文件,大小接近700GB,磁盘上剩余的可用空间非常低。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并通过添加可大大加快GridFS速度的索引解决了该问题。添加索引的命令是:

db.fs.chunks.createIndex({files_id:1,n:1},{unique:true}); //这使GridFS可以非常快速地顺序查找块。

AND

db.fs.files.createIndex({文件名:1,uploadDate:1}); //这使GridFS可以快速找到文件。

有了这样大小的集合,创建索引将需要一段时间。开心的相处。