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

问题描述 投票:0回答:1

[我正在使用Python(在Debian 7.8 amd64上为CPython 2.7.3)和pymongo驱动程序(版本2.7.2)连接到MongoDB(数据库版本v2.4.12)数据库,该数据库仅用于存储文件。 GridFS存储集合。尽管mongodb可以立即找到具有给定_id的文件对象的filename,但鉴于_id的文件请求耗时很短,因此请求删除该文件需要10秒钟的时间才能完成,在此期间mongod会占用100%的CPU时间。

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

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

python mongodb pymongo gridfs
1个回答
0
投票

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

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

AND

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

具有该大小的集合,将需要一些时间来创建索引。祝您旅途愉快。

© www.soinside.com 2019 - 2024. All rights reserved.